Hi,
I am new to access and have only been messing about with it for a few weeks, so forgive me if my code sample is not efficient or elegant. I am tidying it up as I learn more!
My problem is that, depite variable ConvertedDate (it is a Date variable)being in the correct format (I think), of dd/mm/yyyy, whenever I write it to the table Membership, it gets stored as mm/dd/yyyy. I have tried everything to understand this problem but I am lost now!!
Any help/pointers would be appreciated, so I can move on to the next challenge!!
This is the code:
Private Sub SaveReturnToRenewMemClick_Click()
'Get info from Input form
Dim RenewalDate
Dim ConvertedDate As Date
Text19 = Forms!RenewMembership!Text2 'Text2 = start memNum
Text22 = Forms!RenewMembership!Text4 'text4 = end menenum
Text11 = Forms!RenewMembership!Combo7 'combo 7 = renewal fee
RenewalDate = Forms!RenewMembership!Text10 'text10 = renewal date
DoCmd.Close acForm, "RenewMembership", acSaveNo
'set up recordset
DoCmd.OpenTable "Membership"
Dim UpdateCommand As String
Dim MemState As String
Dim YearCol
Text22 = CInt(Text22)
Text19 = CInt(Text19)
ConvertedDate = CDate(Left(RenewalDate, 2) & "/" & Mid(RenewalDate, 4, 2) & "/" & Right(RenewalDate, 4))
'calculate which date column for save data to
If DatePart("yyyy", RenewalDate) = 2012 And DatePart("M", RenewalDate) >= 9 Or DatePart("yyyy", RenewalDate) = 2013 And DatePart("M", RenewalDate) < 9 Then
YearCol = "2012"
GoTo Update
End If
If DatePart("yyyy", RenewalDate) = 2013 And DatePart("M", RenewalDate) >= 9 Or DatePart("yyyy", RenewalDate) = 2014 And DatePart("M", RenewalDate) < 9 Then
YearCol = "2013"
GoTo Update
End If
'Set up correct recordset query
Update:
If YearCol = "2012" Then
Do
UpdateCommand = "UPDATE Membership SET [Fee Paid] = " & Text11 & ", 2012 = 'Renewed', [2012 Date Paid] = #" & ConvertedDate & "# WHERE [Membership Number] = '" & Text19 & "'"
CurrentDb.Execute UpdateCommand
Text19 = Text19 + 1
Loop Until Text19 > Text22
GoTo GetOut
End If
If YearCol = "2013" Then
Do
UpdateCommand = "UPDATE Membership SET [Fee Paid] = " & Text11 & ", 2013 = 'Renewed', [2013 Date Paid] = #" & RenewalDate & "# WHERE [Membership Number] = '" & Text19 & "'"
CurrentDb.Execute UpdateCommand
Text19 = Text19 + 1
Loop Until Text19 > Text22
GoTo GetOut
End If
'clean up and return to renew form
GetOut:
DoCmd.Close acTable, "Membership", acSaveYes
DoCmd.Close acForm, "ConfirmMultipleRenewMembership", acSaveNo
DoCmd.OpenForm "RenewMembership"
End Sub
I am new to access and have only been messing about with it for a few weeks, so forgive me if my code sample is not efficient or elegant. I am tidying it up as I learn more!
My problem is that, depite variable ConvertedDate (it is a Date variable)being in the correct format (I think), of dd/mm/yyyy, whenever I write it to the table Membership, it gets stored as mm/dd/yyyy. I have tried everything to understand this problem but I am lost now!!
Any help/pointers would be appreciated, so I can move on to the next challenge!!
This is the code:
Private Sub SaveReturnToRenewMemClick_Click()
'Get info from Input form
Dim RenewalDate
Dim ConvertedDate As Date
Text19 = Forms!RenewMembership!Text2 'Text2 = start memNum
Text22 = Forms!RenewMembership!Text4 'text4 = end menenum
Text11 = Forms!RenewMembership!Combo7 'combo 7 = renewal fee
RenewalDate = Forms!RenewMembership!Text10 'text10 = renewal date
DoCmd.Close acForm, "RenewMembership", acSaveNo
'set up recordset
DoCmd.OpenTable "Membership"
Dim UpdateCommand As String
Dim MemState As String
Dim YearCol
Text22 = CInt(Text22)
Text19 = CInt(Text19)
ConvertedDate = CDate(Left(RenewalDate, 2) & "/" & Mid(RenewalDate, 4, 2) & "/" & Right(RenewalDate, 4))
'calculate which date column for save data to
If DatePart("yyyy", RenewalDate) = 2012 And DatePart("M", RenewalDate) >= 9 Or DatePart("yyyy", RenewalDate) = 2013 And DatePart("M", RenewalDate) < 9 Then
YearCol = "2012"
GoTo Update
End If
If DatePart("yyyy", RenewalDate) = 2013 And DatePart("M", RenewalDate) >= 9 Or DatePart("yyyy", RenewalDate) = 2014 And DatePart("M", RenewalDate) < 9 Then
YearCol = "2013"
GoTo Update
End If
'Set up correct recordset query
Update:
If YearCol = "2012" Then
Do
UpdateCommand = "UPDATE Membership SET [Fee Paid] = " & Text11 & ", 2012 = 'Renewed', [2012 Date Paid] = #" & ConvertedDate & "# WHERE [Membership Number] = '" & Text19 & "'"
CurrentDb.Execute UpdateCommand
Text19 = Text19 + 1
Loop Until Text19 > Text22
GoTo GetOut
End If
If YearCol = "2013" Then
Do
UpdateCommand = "UPDATE Membership SET [Fee Paid] = " & Text11 & ", 2013 = 'Renewed', [2013 Date Paid] = #" & RenewalDate & "# WHERE [Membership Number] = '" & Text19 & "'"
CurrentDb.Execute UpdateCommand
Text19 = Text19 + 1
Loop Until Text19 > Text22
GoTo GetOut
End If
'clean up and return to renew form
GetOut:
DoCmd.Close acTable, "Membership", acSaveYes
DoCmd.Close acForm, "ConfirmMultipleRenewMembership", acSaveNo
DoCmd.OpenForm "RenewMembership"
End Sub