当前位置:编程学习 > VB >>

关于VB 对ACCESS数据库的操作

   想通过一个命令按钮删除access数据库中指定的一个字段,如果存在删除,不存在提示
求高手帮忙写下代码,
以下代码运行时提示出错
If Not IsNumeric(Text1.Text) Or Val(Text1.Text) = 0 Then
'编号字段是Access 的自动编号,为自然数
'因此对text4 的内容进行校验,如果不是数值或为0 则跳出sub 过程
MsgBox "编号是大于0 的自然数,请输入正确的编号!"
Exit Sub
End If
Dim sc As Integer
sc = MsgBox("确实要删除这个记录吗?", vbOKCancel, "删除确认!")
If sc = 1 Then
'运行时如果用户点击的是MsgBox 提示框的“确定”按钮,返回值是1
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim Str1 As String
Dim Str2 As String
Dim Str3 As String
Str1 = "Provider=Microsoft.Jet.OLEDB.4.0;"
Str2 = "Data Source=./stgl.mdb;"
Str3 = "Jet OLEDB:Database Password="
conn.Open Str1 & Str2 & Str3
strSQL = "select * from gl where 身份证号=" & Text1.Text & ""
rs.Open strSQL, conn, 3, 3
If rs!身份证号 = Text1.Text Then
'由于系统数据库使用的是自动编号作为主键
'因此以编号字段的内容作为判断的依据
'如果rs!编号 = Val(Text4.Text)说明数据库中有此记录并进行删除操作
'否则给“不存在此记录”的提示信息并关闭数据连接
rs.Delete
rs.Close
conn.Close
MsgBox ("删除记录成功!")
Adodc1.Refresh '刷新数据源,MSHFlexGrid 控件会实时刷新显示数据
Else
MsgBox ("不存在此记录!")
Text1.Text = ""
rs.Close
conn.Close
Exit Sub
End If
End If
Text1.Text = ""
提示如下图


另外如何把数据库里面的字段打印出来


--------------------编程问答-------------------- 在过程的开头加人:
dim strSQL as string

作为这个良好的VB编程习惯,在每个模块的第一行使用 option explicit --------------------编程问答-------------------- strSQL=" select * from gl where 身份证号='"& text1.text &"'"
身份证号为字符型,在SQL语句中引用变量时要加单引号 --------------------编程问答-------------------- 不是删除字段吧?是删除记录?

楼上正解。
--------------------编程问答-------------------- text1.text的值最好再做下处理,免得里面多出个单引号什么的 --------------------编程问答-------------------- 谢谢Leftie版主和各位的解答,问题成功解决!VB没学过,最近老师让做一个小系统,没办法.谢谢各位了 --------------------编程问答-------------------- 初学VB就要做系统,勇气可嘉,注意一开始别把功能搞太复杂了,要在自己可掌控的范围内。 --------------------编程问答-------------------- strSQL = "select * from gl where 身份证号=" & Text1.Text & ""

改为:
strSQL = "select * from gl where 身份证号='" & Text1.Text & "'"
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,