ADODBを使ってデータベース一覧をコンボボックスに追加するにはどうすればよいのですか?
テーブル名一覧ではなく、データベース名一覧ですか?
となると、プロバイダ次第ですね。
(Jetプロバイダの場合は、無理だと思います)
プロバイダはSQLSERVERなのですが無理でしょうか?
OpenSchemaメソッドで、カタログのスキーマを取得すればOKです。
Set Cn = New ADODB.Connection
Cn.Provider = "SQLOLEDB"
Cn.Properties("Data Source").Value = strServerName
Cn.Open , strUserName, strPassword
Set Rs = Cn.OpenSchema(adSchemaCatalogs)
Debug.Print "カタログ名", "解説"
Debug.Print Rs.GetString(, , "|", , "(null)")
あるいは、SQLDMOを使う事もできます。
Set Svr = New SQLDMO.SQLServer
Svr.Connect strServerName, strUserName, strPassword
For Each DB In Svr.Databases
Debug.Print DB.Name
Next
adodbの方だとコンボボックスに追加できないんでしょうか?
いまいち分かりません。
Debug.Print で表示はできました。
後 SQLDMO は参照設定で何を追加すれば使えるようになるのですか?
> コンボボックスに追加できないんでしょうか?
ComboBoxのAddItemメソッドで追加していってください。
> SQLDMO は参照設定で何を追加すれば
SQL Serverのクライアントツールがインストールされていれば、
参照設定の一覧に
Microsoft SQLDMO Object Library
と表示されるかと思います。ファイル名はSQLDMO.dllです。
なお、SQL-DMO は再領布可能コンポーネントです。
再頒布条件については、SQL Server のメディアにある
redist.txt を参照してください。
SQLDMOの方はコンボボックスに追加できたのですが、ADODBの方はどうやって区切ったらいいのかわかりません。
後 SQLDMOのWindows NT の統合セキュリティーを使った方法がわからないので教えてください
> ADODBの方はどうやって区切ったらいいのかわかりません
OpenSchemaメソッドの戻り値は、単なるRecordsetオブジェクトです。
MoveNextしながら、EOFになるまで、各FieldのValueを書き出してやりましょう。
> 統合セキュリティーを使った方法
ヘルプで、LoginSecureプロパティについて調べて見ましょう。
やっとできました。魔界の仮面弁士さんのをかげです。
ツイート | ![]() |