我在Microsoft Access上相当新,我遇到了一个我似乎无法解决的错误。我创建了两个单独的表单,即LOGIN和LOGOUT,它基本上将处理所有员工之间的交互,并具有基本功能。
如果您需要查看我的关系或登录表单,以了解我在做什么。
点击
上的我的登录按钮Private Sub cmdLogin_Click()
'add record to database
Dim empID As Integer
Dim logDate As Date
Dim logTime As String
logTime = Time
logDate = Date
empID = Me.cboEmployeeNo.Column(0)
CurrentDb.Execute "INSERT INTO tbl_workShift(employeeID, logTypeID, logDate, logTime) " & _
" Values(" & empID & ", 1, #" & logDate & "#, '" & logTime & "')"
End Sub
我的问题是,每当我登录或注销员工时,它似乎都会创建一个具有不同员工编号但名字和名字相同的某人的副本。
正如您所看到的,员工ID 38和40不应该存在,但它们是从2和4复制的?这种情况发生的原因是什么?任何帮助将不胜感激
答案 0 :(得分:2)
如果表单的DataEntry
属性设置为true,或者您使用DataMode:=acFormAdd
打开表单,则表单将在新的空记录中打开,并且每个条目都将对此新记录进行记录。
在编辑员工之前,请务必选择合适的员工,在正确的记录中打开表单。
如果您使用组合框来选择员工,请确保不要设置此控件的控件来源,因为您不想保存所选值。您只想以编程方式使用它。
如果您想要“纯”数据编辑和输入表单,请按以下方式设置其属性:
边框样式:薄
记录来源:tbl_employee
然后像这样打开它
DoCmd.Close acForm, "frm_employee"
DoCmd.OpenForm "frm_employee", WhereCondition:="employeeID=" & _
Me.cboEmployeeNo.Column(0), DataMode:=acFormEdit
这些属性使表单看起来整洁,并确保您无法错误地导航到其他记录。
此外,您应该区分登录和编辑员工。不应该允许登录表单更改员工记录。