A thousand bucks an hour?! Where do I sign up!!
Yes, the syntax in SQL strings used in Visual Basic can be an absolute riot. I've been at this for years and still can't remember all the rules. What the hey - it works now, so stash it in your 'library of Access brain teasers' because you know darn well you'll need it or pieces of it again. One really good thing to remember though is if you possibly can just call the saved query versus a SQL string in VB, it will run faster plus with the QBE grid, is usually much easier to maintain and understand. That's a fact!
Second option: Make a temp table "tblRefTemp". Name the field as your refno was. You should probably make a continuous form with a combobox with a row source that is from the real refnos table. Hopefully it won't be too slow to load up. (If it is we'll go to plan C!)
Place this form in the main as a sub, and we'll use the same update button on the main form. This time we'll loop the values you've loaded in the temp table then when we're done, empty it and clean off the form for another go. :
On Error GoTo Err1
Dim SQL As String, Rs As Recordset, Db As Database
'For Access 2000 or 2002 you need a reference to Microsoft DAO 3.6 Object Library: VB-Tools-References and check this lib. Make sure it will compile.
'if it won't, move its "priority" up or down till it does.
If IsNull(Me.txtAssignedto) Or Me.txtAssignedto = "" Then
MsgBox "Please enter or select someone to assign this to. ", vbInformation, "Required information..."
Me.txtAssignedto.SetFocus
Exit Sub
End If
If IsNull(Me.txtDateAssigned) Or Me.txtDateAssigned = "" Then
MsgBox "Please enter a date. ", vbInformation, "Required information..."
Me.txtDateAssigned.SetFocus
Exit Sub
End If
If MsgBox("You are about to update your records. Continue? ", vbYesNo + vbQuestion + vbDefaultButton1, "Record update confirmation..."

= vbNo Then Exit Sub
Set Db = CurrentDb()
SQL = "SELECT tblRefTemp.RefNo FROM tblRefTemp ORDER BY tblRefTemp.RefNo"
Set Rs = Db.OpenRecordset(SQL, dbOpenDynaset)
If Rs.RecordCount = 0 Then
Rs.Close
MsgBox "No reference numbers found... ", vbInformation, "Required information..."
GoTo Exit1
End If
Do Until Rs.EOF 'loop the temp tables entries.
'******install your good working line in place of the line below notice the ending...
'Db.Execute "UPDATE [Daily Metrics] SET [Daily Metrics].[DocumentsCurrentlyAssignedto] = '" & Me.DocumentsCurrentlyAssignedto & "', [Daily Metrics].[DateAssigned] = '" & Me.DateAssigned & "' WHERE [Daily Metrics].[Ref No]= " & Rs!RefNo
Rs.MoveNext
Loop
Rs.Close
'done. now wipe the entries.
Db.Execute "Delete tblRefTemp.RefNo FROM tblRefTemp"
Me.YourSubFormsName.Requery 'this should clean the sub form
MsgBox "All records updated successfully. ", vbInformation, "Success!"
DoCmd.Close acForm, Me.Name
Exit1:
Exit Sub
Err1:
MsgBox Err.Number & " " & Err.Description, vbInformation, "Update query error..."
Resume Exit1
End Sub
I wonder if you notice the 16 or so spaces to the right of all message box messages?! (Keeps your message in the middle of the message box when you display a message with an icon. (Bonus!)
Give it a go! Gord
ghubbell@total.net