423,680 Members | 2,439 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 423,680 IT Pros & Developers. It's quick & easy.

rst.update not working

P: 1
Hi there tried creating new entry, it only works when the database is decompreste? weird I know.

can anyone help ?

thanks

PS: see code below

Expand|Select|Wrap|Line Numbers
  1. Dim HospitalNumber As String
  2. Dim strSQL0 As String
  3. dim LastName As String
  4. Dim FirstName As String
  5. Dim strDOB As String
  6.  
  7. If IsNull(Me.Text0.Value) Then
  8. strHospitalNumber = " Like '*' "
  9. Else
  10. strHospitalNumber = "='" & Me.Text0.Value & "' "
  11. End If
  12.  
  13. If IsNull(Me.Combo8.Value) Then
  14. strLastName = " Like '*' "
  15. Else
  16. strLastName = "='" & Me.Combo8.Value & "' "
  17. End If
  18.  
  19. If IsNull(Me.Combo10.Value) Then
  20. strFirstName = " Like '*' "
  21. Else
  22. strFirstName = "='" & Me.Combo10.Value & "' "
  23. End If
  24.  
  25. If IsNull(Me.DOB.Value) Then
  26. strDOB = " Like '*' "
  27. Else
  28. strDOB = "=" & "#" & Format(Me![DOB], "mm\/dd\/yyyy") & "# "
  29. End If
  30.  
  31.  
  32. strSQL0 = "SELECT Profile.* " & _
  33.          "FROM Profile " & _
  34.          "WHERE Profile.HospitalNumber" & strHospitalNumber & _
  35.          "AND Profile.LastName" & strLastName & _
  36.          "AND Profile.FirstName" & strFirstName & _
  37.          "AND Profile.DOB" & strDOB & _
  38.          "ORDER BY Profile.PtID;"
  39.  
  40. Set rst1 = CurrentDb.OpenRecordset(strSQL0)
  41.  
  42. If rst1.EOF Then
  43.  
  44. Dim Msg, Style, Title, Response
  45.  
  46. Msg = "There are no existing records for this patient in the database. To add this patient, click 'Yes'. To cancel and close this message box, click 'no'."
  47. Style = vbYesNo + vbDefaultButton2
  48. Title = "Would you like to add this patient to the database?"
  49. Response = MsgBox(Msg, Style, Title)
  50.  
  51. If Response = vbYes Then
  52.  
  53. rst1.Close
  54.  
  55. DoCmd.SetWarnings (WarningsOff)
  56.  
  57.   Set rst2 = CurrentDb.OpenRecordset("Profile")
  58.  
  59.   rst2.AddNew
  60.       rst2![HospitalNumber] = Me![Text0] 'the field from your form that matches the table column
  61.       rst2![LastName] = Me![Combo8]
  62.       rst2![FirstName] = Me![Combo10]
  63.       rst2![DOB] = Me![DOB]
  64.  
  65. rst2.Update
  66.  
  67. Dim strSQL1 As String
  68. Dim rptID1 As String
  69.  
  70. strSQL1 = "Select Max([PtID]) as [MaxOfID] from Profile;"
  71.  
  72.   Set rst3 = CurrentDb.OpenRecordset(strSQL1)
  73.   rst3.MoveFirst
  74.  
  75.   rptID1 = rst3![MaxOfID]
  76.  
  77. DoCmd.SetWarnings (WarningsOn)
  78.  
  79. DoCmd.OpenForm "Profile", acNormal, , "[PtID]= " & rptID1, acFormEdit, acWindowNormal
  80.  
  81. rst2.Close
  82. rst3.Close
  83.  
  84. DoCmd.Close acForm, "FindPatient", acSaveYes
  85.  
  86. Else
  87. 'Do Nothing
  88.  
  89. End If
  90.  
  91.  
  92. ElseIf rst1.RecordCount = 1 Then
  93.  
  94. Dim strSQL2 As String
  95.  
  96. strSQL2 = "SELECT Profile.PtID As PatientID " & _
  97.          "FROM Profile " & _
  98.          "WHERE Profile.HospitalNumber" & strHospitalNumber & _
  99.          "AND Profile.LastName" & strLastName & _
  100.          "AND Profile.FirstName" & strFirstName & _
  101.          "AND Profile.DOB" & strDOB & _
  102.          "ORDER BY Profile.PtID;"
  103.  
  104. Set rst4 = CurrentDb.OpenRecordset(strSQL2)
  105.  
  106. rst4.MoveFirst
  107.  
  108. Dim RptID2 As String
  109.  
  110. RptID2 = rst4![PatientID]
  111.  
  112. DoCmd.OpenForm "Profile", acNormal, , "[PtID]= " & RptID2, acFormEdit, acWindowNormal
  113.  
  114. DoCmd.Close acForm, "FindPatient", acSaveYes
  115.  
  116. rst1.Close
  117. rst4.Close
  118.  
  119.  
  120. Else
  121.  
  122. Dim Msg2, Style2, Title2, Response2
  123.  
  124. Msg2 = "There are more than 1 records matching these criteria. If you would like to browse these, click 'Yes'. If you would like to enter more criteria, click 'No'."
  125. Style2 = vbYesNo + vbDefaultButton2
  126. Title2 = "Would you like to browse all matching records?"
  127. Response2 = MsgBox(Msg2, Style2, Title2)
  128.  
  129. If Response2 = vbYes Then
  130.  
  131. DoCmd.OpenForm "Profile", acNormal, strSQL0, acFormEdit
  132. 'corresponding to rst1
  133.  
  134. DoCmd.Close acForm, "FindPatient", acSaveYes
  135.  
  136. Else
  137. 'Do Nothing
  138.  
  139. End If
  140.  
  141. rst1.Close
  142.  
  143. End If
  144.  
  145.  
  146. End Sub
Nov 13 '13 #1
Share this question for a faster answer!
Share on Google+

Post your reply

Sign in to post your reply or Sign up for a free account.