Syntax Help On Rs.findfirst
Mar 25, 2008
Hi, I need some syntax help on the following line of code:
rs.FindFirst (rs![NewRecord] = True And IsNull(rs![Event_No]))
where NewRecord is type boolean and Event_No is string. Ive used this function mainly on strings so am not sure what to do with this one!
thanks!!
View Replies
ADVERTISEMENT
Nov 15, 2013
I can't seem to figure out the proper syntax for the FindFirst method. I am using several variations of this effort:
Dim dbs As dao.Database
Dim rst As dao.Recordset
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("tblInvoice", dbOpenDynaset)
rst.FindFirst "rst!ID = frmInvoice!txtID"
I get an error message that says that Access doesn't recognize rst.ID as a valid field. But, it most certainly is. I tried substituting tblInvoice but got the same error.
View 3 Replies
View Related
May 9, 2005
Hello,
I hope I have posted this to the correct forum?
Anyways, I have started porting my database backend to MySQL after a spate of corruptions and speed degrading daily, I have managed to get most things functional but one thing which I can not get working is an odd thing with the FindFirst statement.
I have the following line of code...
rst2.FindFirst "AwaitingStock=True and StockIn=False and DOA=False and Model='" & Trim(Me.Model) & "'"
which works find with Access backend but with MySQL I get the error...
Run-time error '3761':
The decimal field's precision is too small to accept the numeric you attempted to add.
This is obviously not the correct error as I am not trying to add anything!
If I remove the bit about the Model, the code executes fine, also, if I remove all the =True parts and just leave the Model part everything works fine so I guess it is because I am mixing string and integer fields in the search???
Any help greatly appreciated.
Kind regards,
Tom Findlay
View 2 Replies
View Related
May 1, 2006
When, id do press the 'RecordWeergeven' button, Microsoft Visual Basic returns with a error. Method or data member not found. I think the error is located bij Me.Keuzelijst0. Do i have to declare a Listbox or create a second recordset. Please help.
Private Sub RecordWeergeven_Click()
'Me.RecordsetClone.Findfirst "[ID] = " & Me.lstList.ItemData(lstList.ListIndex)
'Me.Bookmark = Me.RecordsetClone.Bookmark
Dim rst As ADODB.Recordset
Set rst = Forms![FMR_users].RecordsetClone
rst.FindFirst "usr_id=" & Me.Keuzelijst0 & ""
Forms![FMR_users].Bookmark = rst.Bookmark
DoCmd.Close acForm, "GaNaarRecord"
End Sub
View 3 Replies
View Related
Mar 2, 2005
Hello All
I just discovered the reason why my table has not been working the way I want it to. In my code below, I have set my rst to find the first record of the previous month which in itself is correct, however I just discovered that it is picking up the records in ascending order.
Here is my code:
Option Compare Database
Option Explicit
Private Sub Button5_Click()
Dim prevMonth As Integer
Dim curMonth As Integer
Dim prevYear As Integer
Dim curYear As Integer
Dim CurRecordMonth As Integer
Dim rst As Recordset
Dim rst2 As Recordset
Dim db As Database
Dim monthText As Variant
Set db = CurrentDb
'fill an array with the text for months names
monthText = Array("", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
' find previous and current Year and month. If current month = jan then go back to Dec of the year before
curMonth = Month(Date)
curYear = Year(Date)
prevYear = Year(Date)
prevMonth = Month(Date) - 1
If prevMonth = 0 Then
prevMonth = 12
prevYear = prevYear - 1
End If
' count number of existing records for current year and month
' If DCount("Month", "TTransactions", "month = '" & monthText(curMonth) & "' and year = " & curYear) = 0 Then
If DCount("Month", "tTransactions", "month = " & curMonth & " and year = " & curYear) < 2 Then
'if current month and year does not exist in table
' open table and find last months record
Set rst = db.OpenRecordset("tTransactions", dbOpenDynaset)
rst.FindFirst "month = " & prevMonth & " and year = " & prevYear
' open table again to write a new record
Set rst2 = db.OpenRecordset("tTransactions", dbOpenDynaset)
Do Until rst.NoMatch ' loop through all records meeting the criteria
rst2.AddNew
rst2![TelNo] = rst![TelNo]
rst2!Year = curYear
rst2!Month = curMonth
rst2!Rental = rst!Rental
rst2![Fees] = rst![Fees]
rst2![Vat] = rst![Vat]
rst2.Update
rst.FindNext "month = " & prevMonth & " and year = " & prevYear
Loop
rst.Close
rst2.Close
Set rst = Nothing
Set rst2 = Nothing
End If
Set db = Nothing
End Sub
Function CallButton5()
Call Button5_Click
End Function
I have put in an autonumber to assign sequential numbers to the records as they are entered. This I had hoped would allow me to sort my query by autonumber, however if the findfirst keeps finding the records in ascending order then I'm lost. Is there any way to get round this?
Thank you Kindly
View 3 Replies
View Related
Aug 1, 2005
I am writing an event procedure to check to see if a particular Project number exist in a recordset. I am trying to use the findfirst method and are having some problems. Here is my code.
Private Sub Command3_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset, ProjectNo As String, SqlStr As String, StrProjectNo As String
Set db = CurrentDb()
Set rs = db.OpenRecordset("tblTrackingSheetFrm", dbOpenTable)
StrProjectNo = Me![ProjectNumber]
rs.FindFirst StrProjectNo
If rs.NoMatch Then
Forms![frmProjectCriteria].Visible = False
DoCmd.SetWarnings WarningsOff
DoCmd.OpenQuery "(1)qryDeletetblTrackingSheetFrm"
DoCmd.OpenQuery "(1A)qryDeletetblTrackingSheetTMP"
DoCmd.OpenQuery "(2)qryAppendProjectTasks"
DoCmd.OpenQuery "(3)qryMaketblLaborActuals"
DoCmd.OpenQuery "(3A)qryUpdatetblTrackingSheetTMP"
DoCmd.OpenQuery "(4)qryDeletetblMaterialActualsTMP"
DoCmd.OpenQuery "(5)qryAppendEquipment"
DoCmd.OpenQuery "(6)qryAppendInventory"
DoCmd.OpenQuery "(7)qryAppendPayables"
DoCmd.OpenQuery "(8)qryAppendPurchaseOrder"
DoCmd.OpenQuery "(9)qryUpdateMaterialActuals"
DoCmd.OpenQuery "(A)qryAppendtblTrackingSheetFrm"
DoCmd.SetWarnings WarningsOn
DoCmd.OpenForm "frmTrackingSheet", acNormal
Else
MsgBox " Project worksheet already opened by another user."
rs.Close
End If
End Sub
What this does is check to see if another user has a project open and if so doesnt allow that user to access that project. I am getting the following error when I execute the procedure on the findfirst Code line.
Runtime error 3251 Operation is not supported by this object type.
Can someone take a look and see what I am doing wrong.
Any help is greatly appreciated.
View 2 Replies
View Related
Feb 23, 2005
Hello,
I have a procedure that searches a table (recordset 1) for values in a lookup table (recordset 2) using FindFirst / FindNext. The routine worked fine until recently, I now have two issues;
I have included a new country in the lookup table - Cote D'Ivoire, now I get an error message when it reaches this name. I guess it's the " ' " that is causing the problem but don't know how to get round it!!??
I have modified the program so I can select the field I want to search from a form (thanks John) but it won't accept the field name as it's not part of the recordset e.g. rstTempTable.findfirst "[Field] = etc. How can I pass the chosen field from the form to the recordset?
Thanks in advance .....
View 4 Replies
View Related
Sep 27, 2005
Need a little help with a record selector.
I ask it to find a record and bookmark it. No problem.
If record doesnt exist I get the value from a control and run a Insert Into command into my table creating a new record with that case #.
Now how do I modify the code below to make the new record just inserted into the bookmarked record. See sample code below. I'm not too practiced when it comes to this recordset business.
Any help is appreciated
Private Sub FindTheRecord()
' Find the record that matches the control.
Dim rs As Object
Dim Answer As String
Dim aSQL As String
Set rs = Me.Recordset.Clone
rs.FindFirst "[CaseNo] = " & Str(Nz(Me![CaseNo]))
If rs.NoMatch Then
Answer = MsgBox("No Matching Case Number Found." & vbCrLf & "Would you like to start a new" & vbCrLf & "record using this case number?", vbYesNo)
If Answer = 6 Then
DoCmd.SetWarnings False
aSQL = "Insert Into Main ([CaseNo])Values ([Forms]![frmMain]![CaseNo]);"
DoCmd.RunSQL aSQL
DoCmd.SetWarnings True
DoCmd.GoToRecord acDataForm, "frmMain", acLast
Code: Original - Code ' does not recognize the last record just added to the table, is there a command I can use here? ' does not recognize the last record just added to the table, is there a command I can use here?
Else
MsgBox "Action Cancelled"
CaseNum = ""
CaseNumYear = ""
DoCmd.GoToControl "CaseNum"
End If
Else
Me.Bookmark = rs.Bookmark
Call EnableControls
End If
End Sub
View 3 Replies
View Related
Mar 8, 2014
I am trying to locate a record on a multirecord form by using Findfirst method. Here is the code.
Dim UA1 As String, UAE1 As String, UA2 As String, UAE2 As String, UA3 As String, UAE3 As String, apost as string, repl as string
apost = "'"
repl = "''"
UA1 = Nz(Forms(ParName).Form.NAME, " ")
UAE1 = Replace(UA1, apost, repl)
[Code] ....
This code sometimes works and sometimes it does not work. The field CNO is a text field of 5 characters but contains the card numbers that is numeric data or nothing.
View 2 Replies
View Related
Jun 28, 2005
Hi,
in the following code:
Dim dbtmp As DAO.Database
Dim tblObj As DAO.TableDef
Dim rs As DAO.Recordset
Set dbtmp = OpenDatabase("C:WINDOWSBureaudevcli.xls", False, True, "Excel 8.0;")
DoEvents
Set rs = dbtmp.OpenRecordset("select * from [DEVCLI$A1:C10]")
in the last line i would like replace DEVCLI (the Excel sheet name) by a variable to make my program works with any excel file.
What is the syntaxe for that ?
Thanks in advance for help.
VINCENT
View 2 Replies
View Related
Nov 1, 2005
Think my syntax is wrong here, but not sure where. I would appreciate any help! Thanks!
SELECT a.[FA Ctr], a.[SAP Co], a.[SAP Ctr], a.[GL Co],
IIf([Len([SAP CO])] ="3",""0"' & [a].[SAP CO]", IIf([Len([SAP CO])]="2",""'00"' & [a].[SAP CO]"), IIf([Len([SAP CO])]="1",""'00"' & [a].[SAP CO]", "[A].[SAP CO]"))) AS Expr3
INTO [Interim Table]
FROM Asset_Map AS a
View 11 Replies
View Related
Mar 12, 2008
Hi there
I'm trying to write a query using an IIF statement in the "Field" property of the Access Query Design Grid the new Column is called F:
there are 3 Columns, System, Etot, Itot in a mytable
Basically in English the query goes,
IF mytable.[System] = 700,
mytable.[Etot] = 0,
mytable.[Itot] = 0
then the newly created derived column
mytable.[F] "N/A"
OTHERWISE
mytable.[F] "OK"
I hope someone understands,
Batwings
View 6 Replies
View Related
Dec 6, 2004
Hi,
I wud like to know why this syntax is not working.
select * from table_name where col_val like 'a%'
This returns the column values that start with 'a'. I was getting the result properly few days ago. But now suddenly this query doesnot give the result. When i tried this out in a website it was working there, but not in access.
Can anybody see what is wrong in this syntax? If the syntax is right where wud be the fault?
View 6 Replies
View Related
Dec 20, 2004
Can someone tell me how to insert the contents of a variable into a table?
I am trying to add selected items from a listbox (Members) into a temporary table (tempMembers). The code is below. On debugging, it picks up the contents of the variable (iMemberID) OK, but adds "0" to the temp table (both are integers). I'm pretty sure the problem is in the Insert statement below (stSQL3), but I can't figure out how to write it!
Any help would be greatly appreciated!
Thanks
stSQL3 = "INSERT INTO tempMembers (MemberID) VALUES & iMemberID & ;"
For Each varItm In Me!Members.ItemsSelected
iMemberID = ctl.ItemData(varItm)
DoCmd.RunSQL stSQL3
Next varItm
View 6 Replies
View Related
Sep 29, 2005
Can anyone tell me the proper syntax for:
1. Calling another Form from within a Form
2. Calling a module from within a Form
Thanks in Advance
View 5 Replies
View Related
Sep 4, 2006
Can someone help me on the syntax for the following?
I have two tables: one is TapeNumber and has one field (Tape_No) autonumbered PK. The other table has information about the video and uses the Tape_No as a secondary key.
I have a form to add information about videos. I have the form bound to the first table, so it adds a new TapeNumber when I add a record. I have a subform displaying the video information for that tape (there may be several videos recorded on one tape).
When I add a new tape (or video to an existing tape), how do I save the tape number to the second table?
Thanks!
View 1 Replies
View Related
Mar 1, 2007
have this code which keeps on giving me this error...I dont know whats wrong with the code please help tried removing the quotes (rstStudents.Open "SELECT * FROM Students WHERE Regno = " & _
txtReg , _
CurrentProject.Connection, _
adOpenStatic, adLockReadOnly, adCmdText) but then it wont retain any records even if they exist in the table
here is the original code
rstStudents.Open "SELECT * FROM Students WHERE Regno = '" & _
txtReg & "'", _
CurrentProject.Connection, _
adOpenStatic, adLockReadOnly, adCmdText
ERROR MESSAGE>>>>>>> Runtime Error '-2147217913 (80040e07)
Data type mismatch in criteria expression
the code is supposed to use number input by user to search in a table and fill all the other fields in the form with the table data (it is run on lost focus of the text box were value has been input)
the whole code :::::
Private Sub txtReg_LostFocus()
Dim rstStudents As ADODB.Recordset
Dim blnFound As Boolean
Dim fldItem As ADODB.Field
blnFound = False
If Me.txtReg = "" Then Exit Sub
Set rstStudents = New ADODB.Recordset
rstStudents.Open "SELECT * FROM Students WHERE Regno = '" & _
txtReg & "'", _
CurrentProject.Connection, _
adOpenStatic, adLockReadOnly, adCmdText
With rstStudents
While Not .EOF
For Each fldItem In .Fields
If fldItem.Name = "Regno" Then
If fldItem.Value = txtReg Then
Me.txtName = .Fields("Name")
Me.txtAdd = .Fields("Address")
Me.txttel = .Fields("Telno")
Me.txtTutor = .Fields("TutorName")
Me.txtbks = .Fields("NoBooksonloan")
blnFound = True
End If
End If
Next
.MoveNext
Wend
End With
If blnFound = False Then
MsgBox "No student record to display"
' ... and reset the form
' cmdReset_Click
End If
rstStudents.Close
Set rstStudents = Nothing
End Sub
View 2 Replies
View Related
Sep 5, 2007
I am trying to open a PDF from Access. I get it to work but it requires me to hard code the path and fiel name....
The path will always be the same although the file name will change. RIght now I get the fiel name from a textbox on a form...I am trying to change the below working code with a varaible instead of the path....I think there is some systax issues that I cannto fingure out
TotPath is the variable that holds the entire path to the file "X:Map_LibraryPark_and_Rec_AsbuiltPRA_19_73-01_W0.pdf"
This variable is rebuilt everytime the user selects something on the form....so the actual File name will change every time...
Does anyone have and ideas as to how to incorporate a variable instead of the hard coded path?
THank you all for your help.....
Code:WORKING CODE: 'Shell "C:Program FilesAdobeAcrobat 7.0AcrobatAcrobat.exe X:Map_LibraryPark_and_Rec_AsbuiltPRA_19_73-01_W0.pdf", vbMaximizedFocus ' open a txt documentNOT WORKING CODE:Shell "C:Program FilesAdobeAcrobat 7.0AcrobatAcrobat.exe TotPath", vbMaximizedFocus ' open a txt document
View 3 Replies
View Related
Jul 25, 2005
I'm familiar with SQL but not with Access97 - some wierd syntax here!
I'm creating a Query that is to Delete records from a table depending on a non-key field in a second table.
I first tried an INNER JOIN
DELETE Activity_Preferences.*
FROM Activity_Preferences INNER JOIN Activity_Key
Activity_Preferences.Activity_Key=Activity_Key.Act ivity_Key AND Activity_Key.Complete=1;
which was initially accepted but then complained about the INNER JOIN after I went in a second time to 'fix' the error.
I've finally got the following syntax accepted:-
DELETE Activity_Preferences.*
FROM Activity_Preferences, Activity_Key
WHERE Activity_Preferences.Activity_Key=Activity_Key.Act ivity_Key AND Activity_Key.Complete=1;
But when executed still gets the following error (same as for the INNER JOIN):-
'Operation must use an updatable query'.
What else is needed?
J.
:confused:
View 4 Replies
View Related
Aug 1, 2005
Hi,
In a form i use the following filter fonction :
DoCmd.ApplyFilter , "CliNom = '" & RunCli & "'"
The problem is that sometimes RunCli (wich is a name) contains ' symbol and then generates a syntaxe error, is there a way to prevent that ?
Thanks in advance.
VINCENT
View 3 Replies
View Related
Mar 2, 2007
On my form I have 2 radio buttons rdoAll and rdoSpecific. If rdoAll is true then it prints a report. THis part works fine. However if rdoSpecific is true then I make visable combo box to look up an ID. Then when I click the button I want the same form to open but with just the info pertaining to the ID selected. Here is my code:
Private Sub cmdLotHistory_Click()
Dim stDocName As String, stSelection As String
stDocName = "rptLotHistory"
If Me.rdoAll = True Then
DoCmd.OpenReport "rptLotHistory", acViewPreview
End If
If Me.cboLotLU.Value > 0 Then
stSelection = "[LotID] =" & Me![cboLotLU]
End If
DoCmd.OpenReport stDocName, acViewPreview, , stSelection
End Sub
When I choose the ID and click the button I get the message
Run-Time error '3075':
Syntax error (missing operator) in query expression '(LotID
=020806B1585)'.
the 020806B1585 is my ID number.
Debug hightlights the
DoCmd.OpenReport stDocName, acViewPreview, , stSelection
but I'm guessing my real problem lies in the
stSelection = "[LotID] =" & Me![cboLotLU]
Can anyone point me in the right direction?
Thanks,
Rick
View 2 Replies
View Related
Jun 18, 2007
I am using the folling code in a after update combobox event:
Dim rst As DAO.Recordset
Dim sqlwhere As String
sqlwhere = " "
If IsNull(Me.comboSearchSerial) = False Then
sqlwhere = "SerialNumber='" & Me.comboSearchSerial & "' and "
End If
mysql = "SELECT TBL_RMA.* from [TBL_RMA] Where "
mysql = mysql & sqlwhere
mysql = mysql & ";"
Forms!FRM_RMA.RecordSource = mysql
Exit_comboSearchSerial_AfterUpdate:
This is currently working for me with SerialNumber being a text field. I would like to use the same code substituting SerialNumber with a Date field. I know its probly an issue with the use of quotes, but I can't seem to figure it out. Also, if I wanted to use a number format, what would I use...
Thanks
Gregg
View 2 Replies
View Related
Sep 13, 2007
I am receiving this error;
"Invalid SQL syntax, cannot use multiple columns in a column level CHECK constraint."
Without explaining my disaster of a situation anyone have any ideas?
View 4 Replies
View Related
Mar 31, 2006
I have a FE/BE access database. I have split it for our business processes from the original owners who decided to keep it combined. I have in my code Set rst = CurrentDb which needs to point to the BE (where the tables are) and I am struggling with getting the proper syntax. My error msgs are as follows:
"Operation is not supported for this type of object" (most likely becuase the rst is nothing)
I then get an error msg related to the form that it cannot update the StudentID field.
The help VB help module is not able to display this information..
Any help is appreciated.
Thanks
View 3 Replies
View Related
Jul 26, 2005
Greetings,
I have a form under development that is to assign an invoice number to a specific set of records based on the client, contractor and job type.
All the above are combo boxes and the first 2 have rowsource directly from tables, no problem.
The 3rd, JobType is dependent on the first 2 being identified first. Thus the query builds from information on the loaded form.
I have built a query that obtains the data needed for the combo-box whose SQL is as follows:
SELECT [Lookup:Job_Description].Job
FROM (([Lookup:Clients] INNER JOIN [Lookup:Contractor] ON [Lookup:Clients].Client_ID = [Lookup:Contractor].Client_ID) INNER JOIN Contractor_Fees ON ([Lookup:Contractor].Contractor_ID = Contractor_Fees.ContractorID) AND ([Lookup:Contractor].Client_ID = Contractor_Fees.Client_ID)) INNER JOIN [Lookup:Job_Description] ON Contractor_Fees.Job_Type = [Lookup:Job_Description].Job_Key
WHERE ((([Lookup:Clients].Company_Name)=[Forms]![frmAssign_Invoice_Num]![cboCompanyName]) AND (([Lookup:Contractor].Contractor_Name)=[Forms]![frmAssign_Invoice_Num]![cboContractorName]));
--- hope you can read that!
I have attempted to format this so that it can be executed in code under the GotFocus event. My code, which does compile looks like this:
cboJobType.RowSource = "SELECT [Lookup:Job_Description].Job " & _
"FROM [Lookup:Clients] INNER JOIN [Lookup:Contractor] ON " & _
"[Lookup:Clients].Client_ID = [Lookup:Contractor].Client_ID " & _
"INNER JOIN Contractor_Fees ON " & _
"[Lookup:Contractor].Contractor_ID = [Contractor_Fees].ContractorID " & _
"AND [Lookup:Contractor].Client_ID = [Contractor_Fees].Client_ID " & _
"INNER JOIN [Lookup:Job_Description] ON " & _
"[Contractor_Fees].Job_Type = [Lookup:Job_Description].Job_Key " & _
"WHERE [Lookup:Clients].Company_Name = " & [Forms]![frmAssign_Invoice_Num]![cboCompanyName] & _
"AND [Lookup:Contractor].Contractor_Name = " & [Forms]![frmAssign_Invoice_Num]![cboContractorName]
But something is wrong that the compiler is missing. Can anyone find the error?
I have tremendous difficulty with sql in code. Is there any utility out there that can check syntax better than the in-program compiler?
My thanks in advance for any assistance. Right now, I am banging my head against the wall.
Regards, Sorrells
View 2 Replies
View Related
Aug 28, 2005
Greetings all,
I am trying to run the query below to tell me how much stock a company has available by deducting the amount dispatched from its allocation. I am getting an error message;
Run Time error '3061'
Too few parameters expect 2
The code is;
Dim db As DAO.Database, qr1 As DAO.QueryDefs
Dim rs1 As DAO.Recordset, rs2 As DAO.Recordset
Dim varVal0 As Variant, varVal1 As Variant, varVal2 As Variant
Dim strSQL As String
Set db = DBEngine(0)(0)
VarVal0 = Me.WINENUMBER
strSQL = "SELECT Sum(tbl_Data_DispatchLineitems.Amount) AS Amount "
strSQL = strSQL & "FROM tbl_data_DispatchDetails INNER JOIN tbl_Data_DispatchLineitems ON tbl_data_DispatchDetails.DispatchID = tbl_Data_DispatchLineitems.DispatchID "
strSQL = strSQL & "GROUP BY tbl_data_DispatchDetails.TradingName, tbl_Data_DispatchLineitems.WineNumber "
strSQL = strSQL & "HAVING ((tbl_data_DispatchDetails.TradingName)=[Forms]![frm_data_Orders]![TradingName]) AND (tbl_Data_DispatchLineitems.WineNumber = VarVal0)"
Set rs2 = db.OpenRecordset(strSQL)
rs2.Edit
varVal1 = rs2![Amount]
rs2.Close
I assume the error lies in the final line of the query code. Any help to find the error would be appreciated.
Thanks in advance.
~rbinder
View 1 Replies
View Related