I have a form that has a subform in it. The subform gets populated by a query.
When you enter data into the form and click a button it is supposed to add it to the subform.
It works partially right now. It is refreshing the subform, but it is one click too late.
Example if you enter entry 1 nothing happens when you enter entry 2 the subform then shows entry 1.
The repaint sub routine is: Expand|Select|Wrap|Line Numbers
- Private Sub UpdaterxQuery()
- [Form_Log Form].rxQuery.Requery
- [Form_Log Form].Repaint
- End Sub
_________________________________________
The whole form code is:
Expand|Select|Wrap|Line Numbers
- Option Compare Database
- Public Sub clearForm()
- [Form_Log Form].aRxNumber.Value = ""
- [Form_Log Form].aQuantity.Value = ""
- [Form_Log Form].aDaySupply.Value = ""
- [Form_Log Form].cLoanedMed.Value = ""
- [Form_Log Form].aPatientName.Value = ""
- [Form_Log Form].aHomeName.Value = ""
- End Sub
- Public Sub aRxNumber_AfterUpdate()
- Dim patName, theHome, loggedBy As String
- Dim rxNum, patId, homeId, theQuantity, daySupply As Long
- Dim LoanedMeds As Boolean
- LoanedMeds = Val(Nz([Form_Log Form].cLoanedMed.Value, False))
- [Form_Log Form].cLoanedMed.Value = False
- rxNum = Val(Nz([Form_Log Form].aRxNumber.Value, 0))
- Dim sqlR, sqlP, sqlH, sqlD1, sqlD2, sqlD3, sqlL As DAO.Recordset
- Dim strDB, objDB
- strDB = CurrentProject.FullName
- Set objDB = OpenDatabase(strDB)
- Set sqlL = objDB.OpenRecordset("SELECT [UserID] FROM [USERLIST] WHERE [Logged In] = True")
- loggedBy = sqlL![UserID]
- Set sqlR = objDB.OpenRecordset("SELECT [PatientID] FROM [SCRIPTLIST] WHERE [RXID] = " & rxNum)
- If sqlR.EOF And sqlR.BOF Then
- Call clearForm
- a = MsgBox("The Rx Number you entered does not exist in the database. ", vbOKOnly, "Error")
- Set sqlR = Nothing
- Set objDB = Nothing
- Exit Sub
- End If
- patId = sqlR![PatientID]
- Set sqlP = objDB.OpenRecordset("SELECT [Patient], [HouseID] FROM [PATLIST] WHERE [PatientID] = " & patId)
- patName = sqlP![Patient]
- patName = Trim(Replace(patName, vbTab, " "))
- [Form_Log Form].aPatientName.Value = patName
- homeId = sqlP![HouseID]
- Set sqlH = objDB.OpenRecordset("SELECT [Home] FROM [HOMELIST] WHERE [HouseID] = " & homeId)
- theHome = sqlH![Home]
- [Form_Log Form].aHomeName.Value = theHome
- End Sub
- Private Sub bLogItem_Click()
- theQuantity = Val(Nz([Form_Log Form].aQuantity.Value, 0))
- daySupply = Val(Nz([Form_Log Form].aDaySupply.Value, 0))
- LoanedMeds = Val(Nz([Form_Log Form].cLoanedMed.Value, False))
- [Form_Log Form].cLoanedMed.Value = False
- rxNum = Val(Nz([Form_Log Form].aRxNumber.Value, 0))
- If rxNum = 0 Or theQuantity = 0 Or daySupply = 0 Then
- a = MsgBox("Please enter a non-zero value for both the Rx Number, Day Supply and the Quantity.", vbOKOnly, "Error")
- Exit Sub
- End If
- Dim CurDate As Long
- CurDate = Date
- Dim strDB, objDB
- strDB = CurrentProject.FullName
- Set objDB = OpenDatabase(strDB)
- Set sqlL = objDB.OpenRecordset("SELECT [UserID] FROM [USERLIST] WHERE [Logged In] = True")
- loggedBy = sqlL![UserID]
- objDB.Execute "INSERT INTO [LOGLIST] (" & _
- "[Log Date], [Rx Number], [Quantity], " & _
- "[Day Supply], [Loaned Med?], [Logged By]) VALUES (" & _
- CurDate & ", " & _
- rxNum & ", " & _
- theQuantity & ", " & _
- daySupply & ", " & _
- LoanedMeds & ", '" & _
- loggedBy & "')"
- Call clearForm
- [Form_Log Form].aRxNumber.SetFocus
- Call UpdaterxQuery
- End Sub
- Private Sub UpdaterxQuery()
- [Form_Log Form].rxQuery.Requery
- [Form_Log Form].Repaint
- End Sub