我正在尝试根据用户的选择获取元数据。我使用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本质上,我是在检查某个特定的复选框是否被选中,如果是“有”,即“case”是"yes“,那么我正试图从提供的数据库中检索数据库表。但是,编译器没有到达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有没有人能看到我哪里出了问题?我想要获取有关数据库的元数据(请不要回答“您需要连接到...”等,因为我已经有了一个子程序来处理这个问题,它工作得很好,我不认为这是一个连接问题)
发布于 2012-08-24 01:14:05
问题解决了,而不是将这个过程存储在模块中,我只是简单地将它存储在活动表单中,我不确定这是否是“最佳实践”,但只要我的代码按预期工作,我就很高兴。我意识到这个错误是因为我没有正确地拼写出"yes“。它正在寻找“是”这个词,我输入了“是”,显然,在这里可以学到彻底阅读你的代码的意义!
https://stackoverflow.com/questions/12093915
复制相似问题