Private Sub 删除职员_Click()
On Error GoTo err_删除职员_click
'定义字符型变量
Dim STemp As String
'定义用于循环的整型变量
Dim i As Integer
'定义数据集变量
Dim Rs As ADODB.Recordset
Set Rs = New ADODB.Recordset
'为打开数据表“查询语句”字符变量赋值
STemp = "Select * from 员工资料"
Rs.Open STemp, CurrentProject.Connection, adopenkeyset, adlockoptmistic
Rs.MoveFirst
For i = 1 To Rs.RecordCount
If Rs("职员ID") = Me![员工资料 子窗体]![职员ID] Then
Rs.Delete 1
i = Rs.RecordCount + 1
Else
Rs.MoveNext
End If
Next i
MsgBox "职员档案记录已经删除完成!", vbOKOnly, "删除完成"
Me![员工资料 子窗体].Requery
Set Rs = Nothing
exit_删除职员_click:
Exit Sub
err_删除职员_click:
MsgBox Err.descritpion
Resume exit_删除职员_click
End Sub
Private Sub 添加职员_Click()
On Error GoTo Err_添加职员_Click
'定义保存"查询语句"的字符型变量
Dim STemp As String
'定义数据集变量
Dim Rs As ADODB.Recordset
Set Rs = New ADODB.Recordset
STemp = "Select * From 员工资料"
'打开"员工资料"数据表
Rs.Open STemp, CruuentProject.Connection, adopenkeyset, adLockOptimistic
'判断窗体中必填或文本框组合框是否为空
If Me![职员ID] <> "" And Me![部门ID] <> "" And Me![姓名] <> "" And Me![身份证ID] <> "" Then
'如果必填文本框和组合框不为空
'使用记录集的Addnew方法填加记录
Rs.AddNew
'把窗体中文本框和组合框内的值赋予记录集中对应的字段
Rs("职员ID") = Me![职员ID]
Rs("部门ID") = Me![部门ID]
Rs("姓名") = Me![姓名]
Rs("性别") = Me![性别]
Rs("籍贯") = Me![籍贯]
Rs("年龄") = Me![年龄]
Rs("民族") = Me![民族]
Rs("身份证ID") = Me![身份证ID]
Rs("家庭电话") = Me![家庭电话]
Rs("手机号码") = Me![手机号码]
Rs("电子邮箱") = Me![电子邮箱]
Rs("备注") = Me![备注]
'使用记录集中的update方法来刷新记录集
Rs.Update
'弹出信息"添加完成"的提示信息
MsgBox "员工档案记录已经成功添加", vbOKOnly, "添加完成"
Else
'如果必填文本框和组合框为空,则弹出“警告信息”
MsgBox "窗体中必填文本或组合框不能为空!", vbOKOnly, "警告"
Me![职员ID].SetFocus
End If
Me![员工资料 子窗体].requrey
'释放系统为RS数据集分配的空间
Set Rs = Nothing
Exit_添加职员_click:
Exit Sub
Err_添加职员_Click:
MsgBox Err.Description
Resume Exit_添加职员_click
End Sub作者: sgrshh29 时间: 2008-10-18 11:43
把这个:
'定义数据集变量
Dim Rs As ADODB.Recordset
Set Rs = New ADODB.Recordset
改为:
Dim Rs As object
set rs = createobject("adodb.recordset")
试试看.作者: Henry D. Sy 时间: 2008-10-18 12:15
需要引用ado3.6作者: 雪野情匆 时间: 2008-10-18 13:38
以下是Access 2007里的帮助,但我太菜,还是修改不了,按上面sgrshh29的,也不会做。
只能通过 Visual Basic for Applications (VBA) (Visual Basic for Applications (VBA):Microsoft Visual Basic 的宏语言版本,用于编写基于 Microsoft Windows 的应用程序,内置于多个 Microsoft 程序中。) 代码来使用此属性。
Global rstSuppliers As ADODB.Recordset
Sub MakeRW()
DoCmd.OpenForm "Suppliers"
Set rstSuppliers = New ADODB.Recordset
rstSuppliers.CursorLocation = adUseClient
rstSuppliers.Open "Select * From Suppliers", _
CurrentProject.Connection, adOpenKeyset, adLockOptimistic
Set Forms("Suppliers").Recordset = rstSuppliers
End Sub
Sub Print_Field_Names()
Dim rst As DAO.Recordset, intI As Integer
Dim fld As Field
Set rst = Me.Recordset
For Each fld in rst.Fields
' Print field names.
Debug.Print fld.Name
Next
End Sub
下一个示例使用 Recordset 属性和 Recordset 对象,将记录集与窗体的当前记录同步。当从组合框中选择公司名称时,将使用 FindFirst 方法来查找该公司的记录,从而在该窗体上显示找到的记录。
Sub SupplierID_AfterUpdate()
Dim rst As DAO.Recordset
Dim strSearchName As String
Set rst = Me.Recordset
strSearchName = CStr(Me!SupplierID)
rst.FindFirst "SupplierID = " & strSearchName
If rst.NoMatch Then
MsgBox "Record not found"
End If
rst.Close
End Sub
以下代码有助于确定在不同情况下 Recordset 属性所返回的记录集的类型。
Sub CheckRSType()
Dim rs as Object
Set rs=Forms(0).Recordset
If TypeOf rs Is DAO.Recordset Then
MsgBox "DAO Recordset"
ElseIf TypeOf rs is ADODB.Recordset Then
MsgBox "ADO Recordset"
End If
End Sub作者: sgrshh29 时间: 2008-10-18 19:31
[attach]32710[/attach]作者: fan0217 时间: 2008-10-18 20:39
仅仅是引用的问题。