0

ユーザーの選択に基づいてメタデータを取得しようとしています。ADODB 名前空間を使用して、データベースへの接続と、データベースからデータを取得するためのレコードセットを提供しています。接続をセットアップしてテストしましたが、これは正常に機能しますが、データの取得は機能していません。

主なセグメントは次のとおりです。

                con.Open()
                cat.ActiveConnection = con

                Select Case chk.Tag
                Case "Yes"
                    For Each modMainFunctions.tbl In cat.Tables
                        If tbl.Type = "TABLE" Then
                            frmMain.lstTables.Items.Add(tbl.Name)
                        End If
                    Next

            End Select

基本的に、特定のチェックボックスが選択されているかどうかを確認しています。「はい」の場合は、提供されたデータベースからデータベース テーブルを取得しようとしています。ただし、コンパイラは FOR ループに到達せず、私は理由が理解できません...

modMainfunctions は、プログラムの主な関数が保存されているモジュールです。その中で、必要なすべての変数を宣言します。

Dim dbname As String = ""
Dim dblocation As String = Application.StartupPath
Dim con As New ADODB.Connection
Dim cat As New ADOX.Catalog
Dim tbl As New ADOX.Table
Dim col As ADOX.Column
Dim view As ADOX.View
Dim key As ADOX.Key
Dim index As New ADOX.Index

誰が私が間違っているのかを見ることができますか? データベースに関するメタデータを取得したい (「... に接続する必要がある」などと答えないでください。これを処理するサブルーチンが既にあり、正常に動作しているとは思えません。接続の問題)

4

1 に答える 1

0

問題は解決しました。この手順をモジュールに保存するのではなく、単にアクティブなフォームに保存しました。これが「ベストプラクティス」であるかどうかはわかりませんが、コードが期待どおりに機能している限り、私は満足しています。エラーの原因は、世界の「はい」を正しく綴らなかったためであることに気付きました...「はい」という単語を探していて、「はい」と入力したことは明らかです。コードを徹底的に読むことの重要性は、ここで学ぶことができます!

于 2012-08-23T17:14:05.493 に答える