我用ado连接access数据库
连接如下:
adoCn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\sysdata.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False"
再用recordset打开一个表如下:
rsQTinfo.Open "select * from tbcline", adoCn, adOpenDynamic, adLockBatchOptimistic, adCmdText
再将recordset给一个datagrid:
Set fglist.DataSource = rsQTinfo并设置了datagrid.allowaddnew=true
那为什么不显示数据并不能在datagrid里输入数据呢?
连接如下:
adoCn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\sysdata.mdb;Mode=ReadWrite|Share Deny None;Persist Security Info=False"
再用recordset打开一个表如下:
rsQTinfo.Open "select * from tbcline", adoCn, adOpenDynamic, adLockBatchOptimistic, adCmdText
再将recordset给一个datagrid:
Set fglist.DataSource = rsQTinfo并设置了datagrid.allowaddnew=true
那为什么不显示数据并不能在datagrid里输入数据呢?
rsQTinfo.CursorLocation = adUseClient
看看
adoCn.CursorLocation = adUseClient
adoCn.OpenrsQTinfo.Open "select * from code", adoCn, adOpenDynamic, adLockBatchOptimisticSet fglist.DataSource = rsQTinfo
rsQTinfo.Open "select * from txlinfo", adoCn, adOpenStatic, adLockBatchOptimistic, adCmdText
就可以了。如果将这个grid的数据批量更新到数据库该怎么做呢?比如有的是内容修改,有的是增加的有删除的。
用recordset.update 还是recordset.UpdateBatch呢?关键还有一列是个编号,用来跟其他表数据库关联的。那这个编号怎么加到新加的记录里呢?谢谢几位的回复,新年快乐
adoCn.CursorLocation = adUseClient 还真管用。
用ado好多年了,但从来没直接操作过grid,水平差啊。有热心的朋友再多给点提示哦。谢谢。
查CSDN,Update 方法
用和用户已经打开“外接程序管理器”对话框一样的方法,刷新来自列在 Vbaddin.ini 文件中的外接程序的 AddIns 集合的内容。问题关键在此处:adLockBatchOptimistic(开放式批更新)
用Update方法写入的是本地缓存;要用UpdateBatch方法才能把缓存中的数据写到数据库中.rs.Update
rs.UpdateBatch
fglist.Columns(1).ValueItems.Presentation = 2
fglist.Columns(1).AutoDropDown = True
fglist.Columns(1).DropDown = dpd1
Set rsCS1 = Nothing
rsCS1.Open "select 学历编号,学历 from tcxl", adoCn, adOpenDynamic, adLockReadOnly, adCmdText
Set dpd1.DataSource = rsCS1
fglist.Columns(1).ValueItems.Clear
If rsCS1.RecordCount > 0 Then
rsCS1.MoveFirst
Do While Not rsCS1.EOF
aVitem.DisplayValue = Trim(rsCS1!学历)
aVitem.Value = rsCS1!学历编号
fglist.Columns(1).ValueItems.Translate = True
fglist.Columns(1).ValueItems.Add aVitem '此处出类型不匹配错误啊!!!
rsCS1.MoveNext
Loop
End If
Me.dpd1.DataField = "学历编号"
Me.dpd1.ListField = "学历"
谢谢楼上,再问个新问题啊。
上边的代码是将一个truedbgrid的某列用下拉列表显示编辑等。。但是在上边标记的地方出错了。这个怎么弄呢,
你们在grid里直接编辑数据时,那种引用代码的字段怎么设置的来方便用户使用呢?