keybs
05-28-2002, 01:56 PM
I have a program job quoting program that is giving me some problems. I use ADO to create new records in the database... every new record requires a new entry in 3 tables... here is the code that I use to add records:
Private Sub addrecord_Click()
Dim count As Integer
'Synchronize database and initiate new quote command
Set addcn = New ADODB.Connection
Set addrs = New ADODB.Recordset
addcn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" + Form4.Text2
addrs.ActiveConnection = addcn
addrs.Open "JobOrderData", , adOpenKeyset, adLockOptimistic
addrs.MoveLast
count = Val(addrs.Fields("QuoteNo"))
'MsgBox count
addrs.AddNew
'increment quote number
addrs.Fields("QuoteNo") = count + 1
addrs.Fields("date") = Date
addrs.Update
'MsgBox addrs.Fields("QuoteNo")
addrs.Close
Set addrs = New ADODB.Recordset
addrs.ActiveConnection = addcn
addrs.Open "BillofMatl", , adOpenKeyset, adLockOptimistic
addrs.AddNew
addrs.Fields("QuoteBM") = count + 1
addrs.Update
addrs.Close
Set addrs = New ADODB.Recordset
addrs.ActiveConnection = addcn
addrs.Open "QuoteSheetInfo", , adOpenKeyset, adLockOptimistic
addrs.AddNew
addrs.Fields("QuoteNO") = count + 1
addrs.Update
addrs.Close
addcn.Close
'MsgBox addrs.RecordCount
Form1.Text63 = count + 1
Unload Form4
'Goto the new quote created in form1
Form1.getrecord = True
Form1.Command11.Value = True
Form1.Show
To access this new record I use the following DAO commands:
Private Sub getrecord_Click()
'Locate quote number (not active command)
Data1.Recordset.Index = "QuoteNo"
'MsgBox Text63
Data1.Recordset.Seek "=", Form1.Text63
If Data1.Recordset.NoMatch Then
MsgBox ("Check to be sure you have selected a valid quote no, or the quote number range")
End
'Data1.Recordset.MoveFirst
End If
End Sub
This getrecord sub will work sometimes and other times I will receive NO CURRENT RECORD. I cannot figure out why it works sometimes and not others.
Private Sub addrecord_Click()
Dim count As Integer
'Synchronize database and initiate new quote command
Set addcn = New ADODB.Connection
Set addrs = New ADODB.Recordset
addcn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" + Form4.Text2
addrs.ActiveConnection = addcn
addrs.Open "JobOrderData", , adOpenKeyset, adLockOptimistic
addrs.MoveLast
count = Val(addrs.Fields("QuoteNo"))
'MsgBox count
addrs.AddNew
'increment quote number
addrs.Fields("QuoteNo") = count + 1
addrs.Fields("date") = Date
addrs.Update
'MsgBox addrs.Fields("QuoteNo")
addrs.Close
Set addrs = New ADODB.Recordset
addrs.ActiveConnection = addcn
addrs.Open "BillofMatl", , adOpenKeyset, adLockOptimistic
addrs.AddNew
addrs.Fields("QuoteBM") = count + 1
addrs.Update
addrs.Close
Set addrs = New ADODB.Recordset
addrs.ActiveConnection = addcn
addrs.Open "QuoteSheetInfo", , adOpenKeyset, adLockOptimistic
addrs.AddNew
addrs.Fields("QuoteNO") = count + 1
addrs.Update
addrs.Close
addcn.Close
'MsgBox addrs.RecordCount
Form1.Text63 = count + 1
Unload Form4
'Goto the new quote created in form1
Form1.getrecord = True
Form1.Command11.Value = True
Form1.Show
To access this new record I use the following DAO commands:
Private Sub getrecord_Click()
'Locate quote number (not active command)
Data1.Recordset.Index = "QuoteNo"
'MsgBox Text63
Data1.Recordset.Seek "=", Form1.Text63
If Data1.Recordset.NoMatch Then
MsgBox ("Check to be sure you have selected a valid quote no, or the quote number range")
End
'Data1.Recordset.MoveFirst
End If
End Sub
This getrecord sub will work sometimes and other times I will receive NO CURRENT RECORD. I cannot figure out why it works sometimes and not others.