思路是这样:查询出一个RECOEDSET,然后,做个循环添加 Dim cnn As ADODB.Connection Dim db As ADODB.Recordset dim strsql as string private sub load_date() Set cnn = New ADODB.Connection set db =new adodb.resordset cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\pad.mdb;Persist Security Info=False" strsql="select productname from product" db.open strsql,cnn,adOpenDynamic, adLockOptimistic if db.eof then exit sub '如果无返回内容 do until db.eof combo1.additem db.fields(0) db.movenext loop db.close end sub
datacombo跟combobox控件外形是一样的。 下面是代码: Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset conn.CursorLocation = adUseClient Set rs = New ADODB.Recordset Dim sql As String conn.Open DataConnectString '你是数据库路径 'group用来抒 相同数据中只取一个 sql = "select productname from product group by productname order by productname" rs.Open sql, conn, adOpenDynamic, adLockOptimistic Set DataCombo1.RowSource = rs.DataSource DataCombo1.ListField = "producename" DataCombo1.Text = rs.Fields("producename")
Sub load_date() Dim cnn As ADODB.Connection Dim db As ADODB.Recordset Dim strsql As String Set cnn = New ADODB.Connection Set db = New ADODB.Recordset cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\pad.mdb;Persist Security Info=False" cnn.CursorLocation = adUseClient strsql = "select productname from product group by productname order by productname" db.Open strsql, cnn, adOpenDynamic, adLockOptimistic If db.EOF Then Exit Sub 'Èç¹ûÎÞ·µ»ØÄÚÈÝ Do Until db.EOF Combo1.AddItem db.Fields(0) db.MoveNext Loop db.Close End Sub我这样写的还是有问题呀。 实时错误:3709 此连接无法用于此操作,在此上下文它能已经被关闭或无效
ljhdi microsoft datalist controls(6.0) 这个我加上了。我试试你的代码如何吧,
/* Sub load_date() Dim cnn As ADODB.Connection Dim db As ADODB.Recordset Dim strsql As String Set cnn = New ADODB.Connection Set db = New ADODB.Recordset cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\pad.mdb;Persist Security Info=False" cnn.CursorLocation = adUseClient strsql = "select productname from product group by productname order by productname" db.Open strsql, cnn, adOpenDynamic, adLockOptimistic If db.EOF Then Exit Sub 'Èç¹ûÎÞ·µ»ØÄÚÈÝ Do Until db.EOF Combo1.AddItem db.Fields(0) db.MoveNext Loop db.Close End Sub我这样写的还是有问题呀。 实时错误:3709 此连接无法用于此操作,在此上下文它能已经被关闭或无效*./ 上面的连接明显没有打开,你当然不能操作了在cnn.CursorLocation = adUseClient后加一个 if cnn.state=0 then cnn.open
Sub load_date() Dim cnn As ADODB.Connection Dim db As ADODB.Recordset Dim strsql As String Set cnn = New ADODB.Connection Set db = New ADODB.Recordset '下里改为OPEN试试 cnn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\pad.mdb;Persist Security Info=False" cnn.CursorLocation = adUseClient strsql = "select productname from product group by productname order by productname" db.Open strsql, cnn, adOpenDynamic, adLockOptimistic If db.EOF Then Exit Sub 'Èç¹ûÎÞ·µ»ØÄÚÈÝ Do Until db.EOF Combo1.AddItem db.Fields(0) db.MoveNext Loop db.Close End Sub
还有呀, 我觉得ljhdi的用到的控件也不错,因为是学习吗?所以,我想有必要也把他的那段代码调试出来。各种方法都用用吧,还得请高人给指点一下吧就是下面的代码: Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset conn.CursorLocation = adUseClient Set rs = New ADODB.Recordset Dim sql As String conn.Open DataConnectString '你是数据库路径 'group用来抒 相同数据中只取一个 sql = "select productname from product group by productname order by productname" rs.Open sql, conn, adOpenDynamic, adLockOptimistic Set DataCombo1.RowSource = rs.DataSource DataCombo1.ListField = "producename" DataCombo1.Text = rs.Fields("producename")//'你是数据库路径 这个注解我理解不了。换成什么呀/具体一下。举个例子。
我修改了一下上面 lovebeethoven(小佛(闭关修炼中)) 的代码:Dim cnn As ADODB.Connection Dim db As ADODB.Recordset dim strsql as string private sub load_date() Set cnn = New ADODB.Connection set db =new adodb.resordset cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\pad.mdb;Persist Security Info=False" cnn.open strsql="select productname from product" db.open strsql,cnn,adOpenDynamic, adLockOptimistic if db.eof then exit sub '如果无返回内容 do until db.eof combo1.additem db.fields(0) db.movenext loop db.close cnn.close end sub 他没有把cnn打开。
主要是实现功能就可以,我可能没有说明白我的意思,就是最终的效果就像html中下拉列表的那种形式。但数据是来自数据库的。不是用"case"指定的。
Dim cnn As ADODB.Connection
Dim db As ADODB.Recordset
dim strsql as string
private sub load_date()
Set cnn = New ADODB.Connection
set db =new adodb.resordset
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\pad.mdb;Persist Security Info=False"
strsql="select productname from product"
db.open strsql,cnn,adOpenDynamic, adLockOptimistic
if db.eof then exit sub '如果无返回内容
do until db.eof
combo1.additem db.fields(0)
db.movenext
loop
db.close
end sub
下面是代码:
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.CursorLocation = adUseClient
Set rs = New ADODB.Recordset
Dim sql As String
conn.Open DataConnectString '你是数据库路径
'group用来抒 相同数据中只取一个
sql = "select productname from product group by productname order by productname"
rs.Open sql, conn, adOpenDynamic, adLockOptimistic
Set DataCombo1.RowSource = rs.DataSource
DataCombo1.ListField = "producename"
DataCombo1.Text = rs.Fields("producename")
你的方法不错,可是我一运行就说错误呀.
实时错误:3709
此连接无法用于此操作,在此上下文它能已经被关闭或无效
你说datacombo跟combobox控件外形是一样的。
我怎么没有找到datacombo呀,在哪呀,是不是在,工程部件中加什么呀,能不能说得详细点呀.小弟刚学..不好意思呀.
在事件中加入这句试试
把microsoft datalist controls(6.0)选中
Dim cnn As ADODB.Connection
Dim db As ADODB.Recordset
Dim strsql As String
Set cnn = New ADODB.Connection
Set db = New ADODB.Recordset
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\pad.mdb;Persist Security Info=False"
cnn.CursorLocation = adUseClient
strsql = "select productname from product group by productname order by productname"
db.Open strsql, cnn, adOpenDynamic, adLockOptimistic
If db.EOF Then Exit Sub 'Èç¹ûÎÞ·µ»ØÄÚÈÝ
Do Until db.EOF
Combo1.AddItem db.Fields(0)
db.MoveNext
Loop
db.Close
End Sub我这样写的还是有问题呀。
实时错误:3709
此连接无法用于此操作,在此上下文它能已经被关闭或无效
microsoft datalist controls(6.0)
这个我加上了。我试试你的代码如何吧,
Sub load_date()
Dim cnn As ADODB.Connection
Dim db As ADODB.Recordset
Dim strsql As String
Set cnn = New ADODB.Connection
Set db = New ADODB.Recordset
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\pad.mdb;Persist Security Info=False"
cnn.CursorLocation = adUseClient
strsql = "select productname from product group by productname order by productname"
db.Open strsql, cnn, adOpenDynamic, adLockOptimistic
If db.EOF Then Exit Sub 'Èç¹ûÎÞ·µ»ØÄÚÈÝ
Do Until db.EOF
Combo1.AddItem db.Fields(0)
db.MoveNext
Loop
db.Close
End Sub我这样写的还是有问题呀。
实时错误:3709
此连接无法用于此操作,在此上下文它能已经被关闭或无效*./
上面的连接明显没有打开,你当然不能操作了在cnn.CursorLocation = adUseClient后加一个
if cnn.state=0 then cnn.open
Dim cnn As ADODB.Connection
Dim db As ADODB.Recordset
Dim strsql As String
Set cnn = New ADODB.Connection
Set db = New ADODB.Recordset '下里改为OPEN试试
cnn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\pad.mdb;Persist Security Info=False"
cnn.CursorLocation = adUseClient
strsql = "select productname from product group by productname order by productname"
db.Open strsql, cnn, adOpenDynamic, adLockOptimistic
If db.EOF Then Exit Sub 'Èç¹ûÎÞ·µ»ØÄÚÈÝ
Do Until db.EOF
Combo1.AddItem db.Fields(0)
db.MoveNext
Loop
db.Close
End Sub
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.CursorLocation = adUseClient
Set rs = New ADODB.Recordset
Dim sql As String
conn.Open DataConnectString '你是数据库路径
'group用来抒 相同数据中只取一个
sql = "select productname from product group by productname order by productname"
rs.Open sql, conn, adOpenDynamic, adLockOptimistic
Set DataCombo1.RowSource = rs.DataSource
DataCombo1.ListField = "producename"
DataCombo1.Text = rs.Fields("producename")//'你是数据库路径
这个注解我理解不了。换成什么呀/具体一下。举个例子。
Dim db As ADODB.Recordset
dim strsql as string
private sub load_date()
Set cnn = New ADODB.Connection
set db =new adodb.resordset
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\pad.mdb;Persist Security Info=False"
cnn.open
strsql="select productname from product"
db.open strsql,cnn,adOpenDynamic, adLockOptimistic
if db.eof then exit sub '如果无返回内容
do until db.eof
combo1.additem db.fields(0)
db.movenext
loop
db.close
cnn.close
end sub
他没有把cnn打开。
DataConnectString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\pad.mdb;Persist Security Info=False"
在我的代码
前面加入这句就行了
谢谢各位。到现在,我又想问一个问题,什么时候用adodc控件或data控件来进行数据库相关的操作呀。在上面的例子中,各位大侠都没有用,只是一个劲的编程,就把问题给搞定了。?以后我用什么方法呀。怎么选择哟?请各位指条明路吧。,