最近再做一个程序,用datagrid绑定数据库内容,并且通过三个command控件实现:
1.对直接在datagrid控件上修改的数据通过询问确认是否修改;
2.当前选定行进行删除,删除前询问;
3.在当前行之前插入一新行。
现在我通过ADO将datagrid与数据库绑定,程序如下:
Private Sub lstBook_DblClick()
Dim rs As New ADODB.Recordset
dbname = App.Path & "\Temp.mdb"
strconnect = "Persist Security Info=False;Data Source=" & dbname & ";Provider=Microsoft.Jet.OLEDB.4.0"
SQL = "SELECT * From " & lstBook.List(lstBook.ListIndex)
rs.CursorLocation = adUseClient
rs.Open SQL, strconnect, adOpenKeyset, adLockOptimistic
Adodc1.Caption = lstBook.List(lstBook.ListIndex)
Set Adodc1.Recordset = rs
Set DataGrid1.DataSource = Adodc1 rs.Update
End Sub
数据显示没有问题,可是每次修改完datagrid里的数据,再重新打开,数据都没有修改成功,请高人指点一下问题在哪?删除和添加行代码应该怎么写?小弟是新人,请各位多多指点!!
1.对直接在datagrid控件上修改的数据通过询问确认是否修改;
2.当前选定行进行删除,删除前询问;
3.在当前行之前插入一新行。
现在我通过ADO将datagrid与数据库绑定,程序如下:
Private Sub lstBook_DblClick()
Dim rs As New ADODB.Recordset
dbname = App.Path & "\Temp.mdb"
strconnect = "Persist Security Info=False;Data Source=" & dbname & ";Provider=Microsoft.Jet.OLEDB.4.0"
SQL = "SELECT * From " & lstBook.List(lstBook.ListIndex)
rs.CursorLocation = adUseClient
rs.Open SQL, strconnect, adOpenKeyset, adLockOptimistic
Adodc1.Caption = lstBook.List(lstBook.ListIndex)
Set Adodc1.Recordset = rs
Set DataGrid1.DataSource = Adodc1 rs.Update
End Sub
数据显示没有问题,可是每次修改完datagrid里的数据,再重新打开,数据都没有修改成功,请高人指点一下问题在哪?删除和添加行代码应该怎么写?小弟是新人,请各位多多指点!!
解决方案 »
- Execl VBA语言。请教高手,删除空行的语句。。。。急,在线等待。。。。。
- Data Environment没有了!
- 求助 数组全部打印出来的问题, 代码全 *(在线等) 谢谢
- spread里作为输入日期的这一整列怎么让它能自动选择日期,不用手动输入?
- 只是查询数据库,会让vb产生错误,退出?
- 第3方控件的安装
- 请教:客户端向服务器请求数据,服务器返回一个记录集,客户端如何显示出来呢?
- 在VB中调用存储过程返回一个记录集到ado的recordset的问题(高手请进)
- 不好意思,本来我有2000多分,怎么最多只能让我给34分。只能请各位哥们帮帮忙,谁有workflow for exchange,不胜感谢。
- 用data控件连接*.mdb时的密码
- 大家帮看下是什么原因
- 把数据导入指定EXCL 表中
可以通过datagrid1.columns(0) 表示当前选中行的记录,删除命令为:cn.Execute sql
我也是初学者.不过你可以试一下看行不行
Private Sub Form_Load()
'连接字符串
Adodc1.ConnectionString = "driver={sql server};server=" + Trim(server) + ";uid=" + Trim(user) + ";pwd=" + Trim(password) + ";database=erp1"
'查询users表中全部信息
Adodc1.RecordSource = "select * from businessman"
'用datagrid显示查询信息
Set DataGrid1.DataSource = Adodc1
'刷新窗口信息
refresh_businessman
End Sub Private Sub lbladd_Click()
'标明操作为添加而非修改
Frmbusinessmanedit.modify = False
Frmbusinessmanedit.Show 1
'刷新供应商管理界面
refresh_businessman
End Sub
Private Sub lblmodify_Click()
Frmbusinessmanedit.modify = True
Frmbusinessmanedit.oribusinessmanid = Adodc1.Recordset.Fields(0)
'把待修改信息添加到编辑窗口
Frmbusinessmanedit.txtbusinessmanid = Trim(Adodc1.Recordset.Fields(0))
Frmbusinessmanedit.Txtbusinessmanname = Trim(Adodc1.Recordset.Fields(1))
Frmbusinessmanedit.Txtcountry = Trim(Adodc1.Recordset.Fields(2))
Frmbusinessmanedit.Txtprovince = Trim(Adodc1.Recordset.Fields(3))
Frmbusinessmanedit.Txtcity = Trim(Adodc1.Recordset.Fields(4))
Frmbusinessmanedit.Txtaddress = Trim(Adodc1.Recordset.Fields(5))
Frmbusinessmanedit.Txtlinkman = Trim(Adodc1.Recordset.Fields(6))
Frmbusinessmanedit.Txttelephone = Trim(Adodc1.Recordset.Fields(7))
Frmbusinessmanedit.Txtfax = Trim(Adodc1.Recordset.Fields(8))
Frmbusinessmanedit.txtbusinessmanid.Enabled = False
Frmbusinessmanedit.Caption = "修改供应商信息"
Frmbusinessmanedit.Show 1
refresh_businessman
End Sub
Private Sub lbldelete_Click()
Dim tempbusinessmanid As String
'保存待删除记录的ID
tempbusinessmanid = Adodc1.Recordset.Fields(0)
'弹出删除确认对话框
If MsgBox("是否删除“" + Adodc1.Recordset.Fields(1) + "”?", vbYesNo, "确认") = vbYes Then
mybusinessman.delete (tempbusinessmanid)
MsgBox "删除成功"
End If
refresh_businessman
End Sub
Private Sub lblback_Click()
Unload Me
End Sub
Public Sub refresh_businessman()
Adodc1.Refresh
If Adodc1.Recordset.RecordCount = 0 Then
lblmodify.Enabled = False
lbldelete.Enabled = False
Else
lblmodify.Enabled = True
lbldelete.Enabled = True
End If
End Sub
SQL = "SELECT * From " & lstBook.List(lstBook.ListIndex)
你检查一下你要修改的数据是否属于该表。
上面的sql语句有错,没有指定表吧 【from 表】,表在哪里?