【发布时间】:2016-08-02 19:08:03
【问题描述】:
我有一个带有文本框 myText 的表单 myForm。
在 onLoad 函数中,我编写的代码应该将记录集中的所有行(数据库的锁定文件)附加到 myText 文本框。
实际发生的是,只有四个字段中的第一个字段被附加到文本框中。
Dim cn As New ADODB.Connection
Dim cn2 As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim i, j As Long
cn.Provider = "Microsoft.Jet.OLEDB.4.0"
cn.Open "Data Source=Z:\myDatabase.mdb"
cn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=Z:\myDatabase.mdb"
Set rs = cn.OpenSchema(adSchemaProviderSpecific, , "{947bb102-5d43-11d1-bdbf-00c04fb92675}")
Me.myText.SetFocus
Me.myText.text = ""
Do While Not rs.EOF
Me.myText.text = Me.myText.text & rs.Fields(0) & vbTab & rs.Fields(1) & vbTab & _
rs.Fields(2) & vbTab & rs.Fields(3) & vbCrLf
rs.MoveNext
Loop
我试过了
Debug.Print rs.Fields(0) & vbTab & rs.Fields(1) & vbTab & rs.Fields(2) & vbTab & rs.Fields(3)
所有四个字段都显示在即时窗口中。
编辑: 我取出了vbtab,因为它不受支持并且文件本身已经有空格,我在
中更改了Me.myText.text
Me.myText.text = Me.myText.text & rs.Fields(0) & rs.Fields(1) & _
rs.Fields(2) & rs.Fields(3) & vbCrLf
到Me.myText。
现在我的代码似乎在一开始就可以工作。当我逐步调试时,文本框按预期填充,但是当代码退出 do while 循环时,文本框中只显示第一行的第一个字段。
debug.print Me.myText 在退出循环之前显示所有行。退出循环后仍然显示所有行。但在表单中,文本框只显示第一条记录,第一个字段。
表单和文本框都没有除此事件之外的任何事件,该事件在表单加载中。
怎么了?
【问题讨论】:
-
在表单的设计视图中,文本框是否允许滚动条和多行?