• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 350
  • Last Modified:

Cannot add record using addnew with recordset

I am working on a project that adds a newrecord to a recordset based on information contained in another recordset.  I can't get the new record to add for some reason . I am attaching code.
Option Compare Database

Public Function CheckCoating()

'This function Checks to see if tray was coated prior to wash/block
On Error GoTo Err_CheckCoating

'This function Checks to see if tray was coated prior to wash/block
Dim rstCoated As DAO.Recordset
Dim rstWashed As DAO.Recordset
Dim Response As String
Dim Msg As String
Dim ID As String
Dim flag1 As Integer

Dim recordidX As Integer
Dim trayidX As String
Dim lotnumberX As String
Dim partnumberX As String
Dim OperatornameX As String
Dim starttimeX As Date
Dim endtimeX As Date
Dim endoperatorX As String
Dim approvedX As Boolean
Dim coatedX As Boolean
Dim coatopX As String
Dim coattmX As Date

'set variables to empty

recordidX = Empty
trayidX = Empty
lotnumberX = Empty
partnumberX = Empty
OperatornameX = Empty
starttimeX = Empty
endtimeX = Empty
endoperatorX = Empty
approvedX = Empty
coatedX = Empty
coatopX = Empty
coattmX = Empty
flag1 = 0

'Setup recordset
Set rstCoated = CurrentDb.OpenRecordset("qryCoatedTrays")
Set rstWashed = CurrentDb.OpenRecordset("qryWashedTrays")

'Create a transaction to prevent data loss


'Check for data

If rstCoated.BOF = True Then
    MsgBox "There are no coated trays"
    Exit Function
End If


Do Until rstCoated.EOF
    If rstCoated!TrayID = Forms![frmScanTray]![txtTrayID] Then
         With rstCoated
         recordidX = !RecordID
         trayidX = !TrayID
         lotnumberX = !LotNumber
         partnumberX = !PartNumber
         OperatornameX = CurrentUser()
         coatedX = !Coated
         coatopX = !CoatOp
         coattmX = !CoatTM
         End With
         starttimeX = Now()
         endtimeX = Empty
         endoperatorX = Empty
         approvedX = False
         With rstWashed
            !RecordID = recordidX
            !TrayID = trayidX
            !LotNumber = lotnumberX
            !PartNumber = partnumberX
            !OperatorName = OperatornameX
            !StartTime = starttimeX
            !EndTime = endtimeX
            !EndOperator = endoperatorX
            !Approved = approvedX
            !Coated = coatedX
            !CoatOp = coatopX
            !CoatTM = coattmX
    End With
         flag1 = flag1 + 1
         Exit Do
        End If
If flag1 = 0 Then
    MsgBox "Tray not coated"
    Exit Function
End If
    Exit Function
    MsgBox Err.Description
End Function

Open in new window

1 Solution
Rey Obrero (Capricorn1)Commented:
what is the sql of query "qryWashedTrays"?  are you using more than one table in this query

why not just use the table as the domain for recordset rsWashed ?
tmalmondAuthor Commented:
I was told that it is better to use a query. The query is all the fields in the table. Just for kicks, I tried what you suggested and it didn't change.

I have done this many times and never had a problem. Its just weird.
Rey Obrero (Capricorn1)Commented:
why do you need a complete recordset of rsCoated from query "qryCoatedTrays"

and here you are testing the TrayID to be the same as the one displayed in the form

 If rstCoated!TrayID = Forms![frmScanTray]![txtTrayID] Then

why not, change your query "qryCoatedTrays" to have a criteria , where TrayID=" & Forms![frmScanTray]![txtTrayID]

then test accordingly

if rstCoated.Eof then exit function

'place code to add record to rsWahed here

Get 10% Off Your First Squarespace Website

Ready to showcase your work, publish content or promote your business online? With Squarespace’s award-winning templates and 24/7 customer service, getting started is simple. Head to Squarespace.com and use offer code ‘EXPERTS’ to get 10% off your first purchase.

You never commit your transaction.
Jeffrey CoachmanMIS LiasonCommented:
<I was told that it is better to use a query.>
Told by who?, and under what circumstances...?

In any event, ...if the query is not update-able, this simply wont work...

<I have done this many times and never had a problem. >
With the exact same query?

DatabaseMX (Joe Anderson - Microsoft Access MVP)Database ArchitectCommented:
I believe pT72 is correct ... there is no (transaction) Commit !

tmalmondAuthor Commented:
Bingo, left out the committrans. Good call.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now