Доступ к базе данных Form1 - это непрерывная форма с полем EmployeeID, которую вы можете дважды щелкнуть, чтобы перейти к другой форме, содержащей информацию о Работнике. Для того, чтобы сохранить правильный работника я использую этот код ...Информация о повторной подписи Access Continuos
Private Sub EmployeeID_DblClick(cancel as integer)
Dim myID as variant
myID = me.EmployeeID
DoCmd.OpenForm "frm_EmployeeInfo",,,,,,myID
End Sub
Это не только воспитывает правильную информацию о сотруднике, но заполнит номер в скрытое текстовое поле, чтобы сохранить информацию.
В форме сотрудника есть TabControl с 4 вкладками, одна из вкладок содержит непрерывную подформу, которую я пытаюсь заполнять информацией о сотрудниках, но вместо заполняемой информации (скажем, Employee X имеет 8 строк разных атрибуты для отображения), он повторяет одно и то же. Вот мой код для подформы:
Option Compare Database
Private Sub Form_open(cancel As Integer)
Dim strConnection, strSQL As String
Dim conn As ADODB.Connection
Dim tbl As ADODB.Recordset
Dim SourceCode As String
Dim myID As Variant
Set conn = New ADODB.Connection
strConnection = "ODBC;Driver={SQLserver};DSN=AccessDatabase;Server=Labor;DATABASE=Source;Trusted_Connection=Yes;"
conn.Open strConnection
myID = CInt(Me.OpenArgs)
SourceCode= Nz(DLookup("[SourceCode]", "Locaton", "[LOC_ID] = Forms!frmUtility![Site].value"), "")
If SourceCode<> "" Then
strSQL = "SELECT EmployeeID,BenefitID,DeductionAmount,BenefitAmount,CoverageAmount,EffectiveDate,"
strSQL = strSQL & "EligibleDate,ExpirationDate FROM "
strSQL = strSQL & SourceCode & "_EmployeesBenefitsNew WHERE EmployeeID= " & myID
Else
strSQL = "SELECT EmployeeID,BenefitID,DeductionAmount,BenefitAmount,CoverageAmount,EffectiveDate,"
strSQL = strSQL & "EligibleDate,ExpirationDate FROM "
strSQL = strSQL & "EmployeesBenefitsNew WHERE EmployeeID= " & myID
End If
Set tbl = New ADODB.Recordset
With tbl
Set .ActiveConnection = conn
.Source = strSQL
.LockType = adLockOptimistic
.CursorType = adOpenKeyset
.CursorLocation = adUseClient
.Open
End With
With tbl
On Error Resume Next
.MoveFirst
Do Until tbl.EOF
Me.txtBenefitID.Value = tbl!BenefitID
Me.txtDeductionAmt.Value = tbl!DeductionAmount
Me.txtBenefitAmt.Value = tbl!BenefitAmount
Me.txtCoverageAmt.Value = tbl!CoverageAmount
Me.txtEffDt.Value = tbl!EffectiveDate
Me.txtTermDt.Value = tbl!ExpirationDate
Set Me.Recordset = tbl
.MoveNext
Loop
.Close
End With
conn.Close
Set conn = Nothing
Set tbl = Nothing
End Sub
Может ли кто-нибудь пролить свет на эту ситуацию? Благодаря!
Является ли это MDB/ACCDB или в.с.ц.? – Fionnuala
Это mdb/accdb – designspeaks
Тогда почему бы не связать таблицы и избежать этих проблем? Вы можете установить источник записей в полный набор записей и фильтровать его с помощью полей link/link master. – Fionnuala