【问题标题】:Query regarding dsn string关于dsn字符串的查询
【发布时间】:2010-11-10 13:21:13
【问题描述】:

以下是在 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 连接对象的情况下填充列表控件,因为我从同一个访问表中获取值?

【问题讨论】:

  • @SmartestVEGA:这是关于您在几分钟内提出的同一主题的第二个问题(另一个在这里:stackoverflow.com/questions/1123664)继续发布随机代码可能不是最好的主意你在互联网上挖掘的样本,要求人们修复它们,直到你找到一个有效的样本。如果你想完成任何事情,你将不得不在 VBA 上投入一些时间。

标签: sql vba forms ms-access listbox


【解决方案1】:

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

这样的东西应该可以工作:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;

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

马特

【讨论】:

  • 感谢 Tomalak,VBA 不是很好,所以感谢您提供更多信息。
  • 我找到了另一个解决方案:lstResults.RowSource = "select * from tblTesting"
【解决方案2】:

Here 是 adClipString 上的信息。

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

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

【讨论】:

    猜你喜欢
    • 2016-04-30
    • 1970-01-01
    • 2017-03-28
    • 2010-10-13
    相关资源
    最近更新 更多