Toukey,
I assume you want to update the three fields in the tblAllPols with values from the form controls where the IssueDate on the form is equal to the IssueDate in tblAllPols.
Dim dbs as DAO.Database
Dim strSQL As String
Set dbs = CurrentDb
' assuming InvNum and Currency are numeric and InvDate is a Date
strSQL = "UPDATE tblAllPols SET InvNo = " & Me.InvNum & _
", InvDate = #" & Me.[Date] & "#, Curenc = " & _
Me.[Currency] & " WHERE IssueDate = #" & Me.IssueDate & "#"
dbs.Execute strSQL, dbFailOnError
Set dbs = Nothing Duane
From: MS_Access_Professionals@yahoogroups.com <MS_Access_Professionals@yahoogroups.com> on behalf of toukey1 <no_reply@yahoogroups.com>
Sent: Sunday, June 23, 2019 8:56 AM
To: MS_Access_Professionals@yahoogroups.com
Subject: Re: [MS_AccessPros] Re: Update table using a recordset
Sent: Sunday, June 23, 2019 8:56 AM
To: MS_Access_Professionals@yahoogroups.com
Subject: Re: [MS_AccessPros] Re: Update table using a recordset
Hi Crystal,
Below is a sample of the tblAllPols table I'm trying to update. So I would like the code on the "Save" button on the form to update the InvNo, InvDate and Currenc fields of the tblAllPols table from the info entered on the form. You will notice that the SeqNo is unique.
SeqNo | ClientNo | FirstName | LastName | Premium | InvNo | InvDate | Currenc | Issuedate |
109830 | 0002571 | M | X | $4,712.50 | 0 | 25-Jun-2019 | ||
109831 | 0002571 | M | X | $4,712.50 | 0 | 25-Jun-2019 | ||
109832 | 0002571 | M | X | $4,712.50 | 0 | 25-Jun-2019 | ||
109833 | 0002571 | M | X | $4,712.50 | 0 | 25-Jun-2019 |
This is the code I was attempting to use....
Set dbs = CurrentDb
strsql1 = "SELECT tblAllPols.SeqNo FROM tblAllPols WHERE [tblAllPols].[Issuedate] = Me!IssueDate
strSQL = "SELECT * from [tblAllPols]"
Set rst = dbs.OpenRecordset(strSQL)
Set rst1 = dbs.OpenRecordset(strsql1)
rst1.MoveLast
rst1.MoveFirst
noorecords = rst1.RecordCount
For inti = 0 To (noorecords - 1)
burgarray(0, inti) = rst1!SeqNo
rst1.MoveNext
Next
For inti = 0 To (noorecords - 1)
With rst
.Edit
!InvNo = Me!InvoiceNo
!InvDate = Me!Date
!Currenc = Me!Currency
.Update
End With
Next
rst.Close
rst1.Close
End If
Hopefully the above examples will make things a little clearer.
Regards
Toukey
---In MS_Access_Professionals@yahoogroups.com, <strive4peace2008@...> wrote :
On 6/22/2019 9:25 PM, toukey1 wrote:
Hi Crystal
The fields are actually called InvDate and Currenc so I should be fine.
Any idea why my recordset is not updating the table or how best I can accomplish the task at hand?
RegardsToukey
---In MS_Access_Professionals@yahoogroups.com, <strive4peace> wrote :
On 6/22/2019 9:07 AM, toukey1 wrote:
Hi Crystal,
Sorry about the history.?? Let me see how best I can explain what I am trying to accomplish.
I have the original "Dlookup" code on the 'Save' button on an Invoice form.?? The code did what it was supposed to do which was to get the SeqNo (unique key) in the table tblAllPols based on the criteria i.e. vard, vno, add2 etc.?? Once the row has been found, the row would be updated with the InvNo, InvDate and currenc from the current invoice form.
Originally, there would be only one (1) row to update as the criteria was unique but now, due to other changes in the application, more than one (1) row can have the same criteria and I need to update all the rows found with the same criteria with the??InvNo, InvDate and currenc from the current form.?? That's when I thought I would create a recordset which would find the SeqNo for all rows with the criteria and update it.?? Using the recordset I created I was able to identify the SeqNos but the rows in the table are not being updated.
How best can I accomplish this?
Regards Toukey
---In MS_Access_Professionals@yahoogroups.com, <strive4peace> wrote :
Initially I had a DLookup code that was working fine based on the criteria e.g.:
sno = DLookup("[SeqNo]", "tblAllPols", "[tblAllPols].[Issuedate] = # " & vard & " #" & vno & add2 & add3 & add4 & add8)
uquery = "update tblAllPols set InvDate = # " & varx & " # where [tblAllPols].[SeqNo] = " & snouquery1 = "update tblAllPols set InvNo = " & x & " where [tblAllPols].[SeqNo] = " & snouquery2 = "update tblAllPols set Currenc = '" & xxx & "' where [tblAllPols].[SeqNo] = " & sno
However the above code only updates one row in the table.? I want to be able to update more that one row so I thought a loop would be better.
I am not getting any errors in the code I posted initially but the problem is that it's not updating the table.
What is the best way to handle what I want to do?
Regards~~~
you're welcome
re: "I want to be able to update more that one row so I thought a loop would be better."What is the logic you are using to know what to update? Could that same logic not be put into the WHERE clause for SQL too?
is SeqNo not on your form? why are you using a DLookup to get it?? and what is the grouping above the sequence number?
Where do the other parts like add2 and add3 come from?
Is this a main form with a subform(s)? What is the RecordSource? It is hard to help without knowing more about your structure and intention.
Could you explain a little bit about what your application does, and what this form is collecting?
thanks
have an awesome day,
crystal
On 6/21/2019 12:59 PM, crystal 8 strive4peace [MS_Access_Professionals] wrote:
On 6/21/2019 8:00 AM, Duane Hookom? [MS_Access_Professionals] wrote:
Toukey,Have you tried any trouble-shooting such as setting break points, debug.print, or others? What were your results?
Is there a reason you didn't simply use an update query in place of a recordset?
Regards,Duane
From: MS_Access_Professionals@yahoogroups.com <MS_Access_Professionals@yahoogroups.com> on behalf of toukey1 <no_reply@yahoogroups.com>
Sent: Friday, June 21, 2019 7:49 AM
To: MS_Access_Professionals@yahoogroups.com
Subject: [MS_AccessPros] Update table using a recordset?
__._,_.___
Posted by: Duane Hookom <duanehookom@hotmail.com>
Reply via web post | • | Reply to sender | • | Reply to group | • | Start a New Topic | • | Messages in this topic (11) |
SPONSORED LINKS
.
__,_._,___
Tidak ada komentar:
Posting Komentar