查询vba中的dsn字符串

时间:2009-07-14 06:08:00

标签: sql forms vba listbox access-vba

以下是填写VBA应用程序中列表框的代码:

Private Sub Form_Open(Cancel As Integer)

  ''#Populate list box control.
  Dim cnn As ADODB.Connection
  Dim strSQL As String
  Dim rst As ADODB.Recordset
  Dim strList As String

  On Error GoTo ErrHandler

  ''#Use DSN to Northwind. 
  ''#Modify connection and connection string as needed.

  Set cnn = New ADODB.Connection
  cnn.Open "DSN=NorthwindExample"
  strSQL = "SELECT * FROM Shippers"
  Set rst = New ADODB.Recordset
  rst.Open strSQL, cnn
  strList = rst.GetString(adClipString, , ";", ",")

  Debug.Print strList

  Me.lstShippers.RowSource = strList
  rst.Close
  cnn.Close
  Set rst = Nothing
  Set cnn = Nothing

  Exit Sub

ErrHandler:
  MsgBox Err.No & ": " & Err.Description, vbOKOnly, "Error"
  Set rst = Nothing
  Set cnn = Nothing
End Sub

我需要知道我需要把什么作为DSN字符串?我在哪里可以获得信息?

此代码中的adClipString是什么?

是否有任何选项可以在不使用DSN连接对象的情况下填充列表控件,因为我从相同的访问表中获取值?

2 个答案:

答案 0 :(得分:2)

这是一个包含Access的不同连接字符串的链接: http://www.connectionstrings.com/access

这样的事情应该有效:Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\ mydatabase.mdb; User Id = admin; Password =;

我不确定adClipString是什么,它可能是未声明的变量或数据库列?

马特

答案 1 :(得分:1)

Here是关于adClipString的信息。

基本上,GetString方法将整个记录集的内容转换为字符串变量,其中列将以“;”分隔。并且行将以“,”(根据您的代码)分隔。

关于DSN - 请参阅开始 - >设置 - >控制面板 - >管理工具 - >数据源(ODBC)。其中一个选项卡(我猜是系统DSN)是可以创建并列出基于ODBC的数据源的地方。