'以下两个变量分别是判断是否登录数据库成功的变量 '和一个链接数据库的对象变量 Private blnConnected As Boolean Public gcnnConnection As ADODB.Connection'功能:连接数据库并执行判断是否连接成功 '输入: ' cnnConnection ADODB.Connection 要创建的连接 '输出:gADOConnection Boolean 返回的判断结果 '******************************************************************** Public Function gADOConnection(ByRef cnnConnection As ADODB.Connection) As Boolean Dim itsConnectionString As String Dim lngErrNum As Long
ADOErr: lngErrNum = err.Number If lngErrNum <> 0 Then gADOConnection = False End If End Function'****************************************************************** '功能:获取ADO记录集 '输入: ' strSQL String 用于查询SQL数据库的SQL语句 '输出: GetRecordSet Recordset 返回的记录集 '******************************************************************* Public Function GetRecordSet(strsql As String) As ADODB.Recordset On Error GoTo err Dim rsTemp As ADODB.Recordset Set rsTemp = New ADODB.Recordset
Set gcnnConnection = New ADODB.Connection
blnConnected = gADOConnection(gcnnConnection)
If blnConnected = True Then '设置游标类型和数据库锁定类型 rsTemp.Source = strsql Set rsTemp.ActiveConnection = gcnnConnection rsTemp.CursorType = adOpenKeyset rsTemp.LockType = adLockOptimistic rsTemp.Open
Set GetRecordSet = rsTemp Else Set GetRecordSet = Nothing End If Exit Function err: MsgBox err.Number & " " & err.Description End Function Private Sub cmdSave_Click() Dim rs As New ADODB.Recordset Set rs = GetRecordSet("stu_tab") '假设数据库中的表名为stu_tab rs.AddNew rs!stu_ag = 20 '年龄 rs!stu_nm = aa '姓名 rs.Update end sub
Private Sub cmdSave_Click() Dim rs As New ADODB.Recordset Set rs = GetRecordSet("stu_tab") '假设数据库中的表名为stu_tab rs.AddNew rs!stu_ag = "20" '年龄 上面的忘记加双引号 rs!stu_nm = "aa" '姓名 rs.Update end sub
rs.addnew
rs.fields("name")="wu"
rs.update
我用了啊
Private Sub Command1_Click()
On Error GoTo kk
Me.Adodc1.Recordset.AddNew
Text1.SetFocus
kk:
MsgBox "不能为空", vbInformation
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text6.Text = ""
End Sub
text1~text4不要绑定要记录集。
text1~text4不要绑定到记录集。
我现在添加一 个记录是 :2.姓名:aa 年龄:20
显示的应该是 姓名:kk aa 年龄:19 20
错误的是它显示的是 把1的记录给覆盖了
结果显示是新添加的记录
姓名:aa 年龄:20
'和一个链接数据库的对象变量
Private blnConnected As Boolean
Public gcnnConnection As ADODB.Connection'功能:连接数据库并执行判断是否连接成功
'输入:
' cnnConnection ADODB.Connection 要创建的连接
'输出:gADOConnection Boolean 返回的判断结果
'********************************************************************
Public Function gADOConnection(ByRef cnnConnection As ADODB.Connection) As Boolean
Dim itsConnectionString As String
Dim lngErrNum As Long
On Error GoTo ADOErr
Set cnnConnection = New ADODB.Connection
cnnConnection.Provider = "microsoft.jet.oledb.4.0"
itsConnectionString = "data source=" & App.Path & "\student.mdb"
cnnConnection.ConnectionString = itsConnectionString
cnnConnection.CursorLocation = adUseClient
cnnConnection.Open
gADOConnection = True
ADOErr:
lngErrNum = err.Number
If lngErrNum <> 0 Then
gADOConnection = False
End If
End Function'******************************************************************
'功能:获取ADO记录集
'输入:
' strSQL String 用于查询SQL数据库的SQL语句
'输出: GetRecordSet Recordset 返回的记录集
'*******************************************************************
Public Function GetRecordSet(strsql As String) As ADODB.Recordset
On Error GoTo err
Dim rsTemp As ADODB.Recordset
Set rsTemp = New ADODB.Recordset
Set gcnnConnection = New ADODB.Connection
blnConnected = gADOConnection(gcnnConnection)
If blnConnected = True Then
'设置游标类型和数据库锁定类型
rsTemp.Source = strsql
Set rsTemp.ActiveConnection = gcnnConnection
rsTemp.CursorType = adOpenKeyset
rsTemp.LockType = adLockOptimistic
rsTemp.Open
Set GetRecordSet = rsTemp
Else
Set GetRecordSet = Nothing
End If
Exit Function
err:
MsgBox err.Number & " " & err.Description
End Function
Private Sub cmdSave_Click()
Dim rs As New ADODB.Recordset
Set rs = GetRecordSet("stu_tab") '假设数据库中的表名为stu_tab
rs.AddNew
rs!stu_ag = 20 '年龄
rs!stu_nm = aa '姓名
rs.Update
end sub
Dim rs As New ADODB.Recordset
Set rs = GetRecordSet("stu_tab") '假设数据库中的表名为stu_tab
rs.AddNew
rs!stu_ag = "20" '年龄 上面的忘记加双引号
rs!stu_nm = "aa" '姓名
rs.Update
end sub
比如 '年龄 用text1.text
'姓名 用text2.text
在用一个command1 用来添加
当你点击添加(command1)的时候 然后在text1.text text2.text 输入数据
但是添加的新内容 总会把旧内容覆盖
conn.execute " insert into (...) values(...)"
On Error GoTo kk
Me.Adodc1.Recordset.AddNew
Me.Adodc1.Recordset!Stu_ag = Text1.Text
Me.Adodc1.Recordset!Stu_nm = Text2.Text
......
Exit Sub
kk:
MsgBox "不能为空", vbInformation
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text6.Text = ""
End Sub