Modules & VBA :: Query Object To Recordset
Oct 14, 2013
I am in the middle of creating a function that populates two unbound text boxes on a form and then uses those unbound textboxes in a query (Total of 3 unbound text boxes - 2 are populated from this function). The saved query object is working fine when I manually execute it (after the unbound text boxes have been populated). However, when I go to set the same query to a recordset I am getting the "Too Few Parameters. Expected 3." error message.
In the saved query I used the build function to use the unbound text boxes as part of the where clause. Below is the code I am trying to execute:
PHP Code:
Public Function Test()Dim db As DAO.DatabaseSet db = CurrentDbDim rst As DAO.Recordset
Dim DtBegin As String''FInd the Begin dtstBegin = DateAdd("q", -1, DateSerial(Year(Date), (DatePart("q", Date) - 1) * 3 + 1, 1))
Dim DtEnd As String''find the end dateDtEnd = DateAdd("Q", DateDiff("Q", 0, Date) - 1, 0)
[Code] ......
The unbound text boxes are populated before the query is set to the recordset.
View Replies
ADVERTISEMENT
Aug 14, 2015
Special situation: The SQL Server Linked Server across the country is linked to a Read Only Oracle DB. This data pull works perfectly and populates the Subform.
The problem is that Oracle can take 3 to 6 seconds to retrieve the single record depending on the network traffic through a small pipe.
The code below shows the RecordSource for the SubForm. clicking on a list box supplies the value. Then 3 to 6 seconds later, the subform populates.
The actual Recordset for this Recordsource is needed to conduct Validation on each field. Normally this would be on SQL Server, I might just create a Recordset Oject and run this SQL statement again in 1 milisecond. In this case, it will probably take an additional 3 to 6 seconds. Avoiding another lengthy round-trip to Oracle would be prefered.
Goal: How does one grab, clone, or other wise reference the existing recordset for the SubForm?
Note: Immediate Window - One single field can be returned quickly
There are 48 fields that need validation - is there a way to reference the entire recordset?
Immediate Window during Break Mode:
? me.fsubsrNavSHLBHL("NavSH_QQ")
NESE ' this is the correct value for the current recordsource
Set a breakpoint right after the line:
fsubsrNavSHLBHL.Form.RecordSource = "Select * from vsrNavigatorSHLBHL where Well_ID =" & txtNavWellID.Value
Immediate Window:
? me.fsubsrNavSHLBHL.Form.RecordSource
Select * from vsrNavigatorSHLBHL where Well_ID =91229
View 4 Replies
View Related
Jul 8, 2015
Which reference to be added to use Recordset object in Excel VBA. I added "Microsoft DAO 3.6 Object Library" reference but still its not working.
View 8 Replies
View Related
Aug 15, 2006
Hi all,
I've been banging my head against this problem for a while now and making no progress and am hoping someone cleverer than me can provide some assistance in solving it, or point me in the right direction.
Here goes....
I am working solely in the VBA environment and would like to perform an automated process that returns a recordset based on the results of a previously created recordset (assuming of course it is possible in the first instance.)
The catch is I would like to perform an INNER JOIN using the results held within a recordset.
I have already achieved this by creating a temporary table (using a SELECT INTO statement) and then removing the temporary table when I am finished but find this is a slower process than I would like.
I have three tables:
Table A - Fields: GROUP, NAME, DATA1, DATA2
Table B - Fields: GROUP, NAME, , CITY, DATA3
Table C - Fields: CITY, DATA3
I have the following declarations:
Dim db As Database
Dim rs1 As Recordset, rs2 As Recordset, rs3 As Recordset
Dim strSql As String
Set db = CurrentDb
Next, I select a specific range I am interested in. For the purpose of this example, I am only selecting GROUP values of 1,2 and 3.
strSql = "SELECT * FROM A WHERE A.GROUP IN (1,2,3)"
Set rs1 = db.OpenRecordset(strSql)
rs1.MoveFirst
Now, for each record returned in the query above, I would like to process as follows:
' // Build SQL statement
strSql = ""
strSql = strSql & "SELECT B.* "
strSql = strSql & "AS jc "
strSql = strSql & "FROM A "
strSql = strSql & "INNER JOIN B ON (A.Id = B.Id) "
strSql = strSql & "WHERE B.Name = " & rs1.Fields("Name")
strSql = strSql & " And A.Name = B.Name"
Set rs2 = db.OpenRecordset(strSql)
rs2.MoveFirst
The rs2 query returns the results of that query into what I though was a memory resident table referred to as "jc". (This is most likely where I am going wrong!)
Using this reference, I perform another query...
' // Build SQL statement
strSql = ""
strSql = strSql & "SELECT * FROM jc "
strSql = strSql & "INNER JOIN [C] ON (jc.City = C.City) "
strSql = strSql & "WHERE (([jc]![City] In ([jc]![City]) ))"
Set rs3 = db.OpenRecordset(strSql)
rs3.MoveFirst
And from this point I would be able to process the results (if any) that I need to....
...if it wasn't for the error:
"The Microsoft Jet database engine cannot find the input table or query 'jc'. Make sure it exists and that its name is spelled correctly."
I know the table doesn't 'truly' exist as a physical object or entity within the database, so how do I reference this 'phantom' table in a query?
I am happy to provide more details if it would help solve this problem and would really appreciate any feedback that anyone has to offer.
Thanks,
JC
View 5 Replies
View Related
Feb 6, 2013
My form respectively subform has a couple of problems related to the recordset as it is available in VBA.
The mainform contains material data, the subform contains the components of that material and a quantity, while the components are materials themselves. The subform's control source is an SQL statement created by the query builder.
Everything worked fine before i replaced the material-selecting combobox in the continuous subform by a textbox and a button. That button leads to another (dialog) form with some filtering options, which in turn returns the number of the selected material. This material gets inserted into the textbox. To this point it works fine.
But when i enter a quantity before i selected a Material, i get an error message after selecting the Material: This Action was Cancelled by an Associated Object. This happens while executing the following VBA Code on click of the material selection button (exact position commented in code):
Code:
Private Sub cbuSelectComponent_Click()
' Select component
Dim SQL As String
Dim rs As Recordset
DoCmd.OpenForm "Material Selector Dialog", , , , , acDialog, "Dialog"
If GLB_selected_mat = -1 Then 'cancel
[Code] ....
I've found the following Microsoft KB Article: [URL] ..... In their example code they use:
' Restore text box value to the original record contents
' in this case, that is NULL
datDataCtl.UpdateControls
I assume this is the relevant part, but i have no DataControl (what's that?) and neither found an UpdateControls method in the subform object.
The second error, "no current recordset", occures when i edit an existing component line in the subform that has been added right before (also using the same event and code as mentioned above). If i close the form after adding the component and open it again, it's no problem.
View 2 Replies
View Related
Jun 11, 2014
I'm trying to assign the result of an SQL query to a variable using VBA in Access. The query returns a value but the variable which it is assigned to has a value of Nothing. Here is the code snippet:
Dim queryReturnID As String
queryReturnID = "select dbo_tbl_SupplierReturn.ReturnID from dbo_tbl_SupplierReturn" & _
" where SupplierID = " & lstPOHdr.Column(1)
Debug.Print queryReturnID
Dim RecordSet1 As DAO.RecordSet
Set RecordSet1 = CurrentDb.OpenRecordset(queryReturnID)
View 3 Replies
View Related
Dec 15, 2014
I want to use Recordset to work with query but get the error "Run-time error '3061' too less parameters. Expected one".
Code:
Dim rst As Recordset
Dim strSQL As String
Dim krojenie As String
strSQL = "SELECT * FROM powtorzeniaDoKrojenia"
[Code] .....
View 3 Replies
View Related
Sep 8, 2014
I have a module that I am using to verify that file paths in my table point to valid jpg files. The table has grown quite a bit since I first created the module and it has gotten to the point where it's taking too long for the module to execute. I'm in the process of trying to change the record set for the module from the table to a stored query procedure but it's turning out to be a little tricky for me. When I execute the following module, I'm not getting any error code, it just doesn't seem to do anything at all. The bits in red are the parts I've changed. Before that the module executed as I expected it would.
Code:
Sub TestIt2()
Dim strFileName As String
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("QryUpdateRevisionHistory")
[code]....
View 1 Replies
View Related
Jul 7, 2013
I want to write a email where there are 2 or 3 different ordernumbers for same email, i want to include the email in the mail part as single column table. how to do it? also can i use result of one recordset for other recordset?
View 1 Replies
View Related
Nov 6, 2013
I am just in the middle of writting a little bit of code that will go through each record in a query and export it into a word table. It's in the early stages but all was working yesterday. I've come to it this morning and ran it and now I get an error message;Run Time error 91: Object Variable or With Block Variable not set.
Code:
Private Sub Command15_Click()
Dim MyDb As DAO.Database
Dim rsLogin As DAO.Recordset
Dim ObjHead As String
Set MyDb = CurrentDb()
Set rsLogin = MyDb.OpenRecordset("query here")
[code]....
View 2 Replies
View Related
Nov 27, 2013
message "cannot find the object "." ". I have looked in the VBA for the Report I am working with and the form that has the underlying data and cannot find the rouge period! I am creating a label for payment envelopes that is gets its data from the form that indicates payments made
View 1 Replies
View Related
Nov 15, 2013
I am trying to use Access 2007 popup calendar to populate a combo box with a selected date. When I select the date on the calendar the above error appears.
Code:
Private Sub Calendar9_Click()
'Set Date to the selected date and hide the clalendar.
MAssBDate.Value = Calendar9.Value
MAssBDate.SetFocus
Calendar9.Visible = False
End Sub
[code]....
View 2 Replies
View Related
Mar 17, 2015
When we use DoCmd.SendObject, the object name is always the same name of table, query or report.Can we customize object name to something else more descriptive? For example:
If I send the report "SalesPerSalesman" about John Smith,
the object name now is "SalesPerSalesman.pdf"
If i send the report "SalesPerSalesman" about Maryann Johns,
the object name would be again "SalesPerSalesman.pdf"
However , the object name I would like "SPS_JohnSmith.pdf"and the report for Maryann Johns, I would like as object name "SPS_MaryannJohns.pdf"
Syntax
DoCmd.SendObject ObjectType, ObjectName, OutputFormat, To, Cc, Bcc, Subject, MessageText, EditMessage, TemplateFile
ObjectName � Name of table, query, Report etc.
View 1 Replies
View Related
Mar 27, 2014
Not sure whats going on here, nothing on the table that stops this from working. I just get Run-time error "2448 You can't assign a value to this object" When the code runs.
Code:
Private Sub Form_Open(Cancel As Integer)
Dim rst As DAO.Recordset
MySQL = " Select max(ID) from TblUserQry"
Set rst = CurrentDb.OpenRecordset(MySQL)
Myid = rst.Fields(0) + Int(Rnd(1) * 10)
Me.txtMyID.Value = Myid
End Sub
View 6 Replies
View Related
Feb 24, 2015
I have been using this export function for the longest time and today it is giving me an error:Object invalid or no longer set.
Code:
On Error GoTo Err_cmdTest_Click
'Must 1st set a Reference to the Microsoft Office XX.X Object Library
Dim dlgOpen As FileDialog
Dim strExportPath As String
Const conOBJECT_TO_EXPORT As String = "EXPORT"
[code]....
View 5 Replies
View Related
Aug 8, 2013
I'm trying to display an image which is saved in the table as an OLE Object in a message box. The field with the object is "PowerCurve". This is what I'm trying to do. It allows me to get as far as clicking yes to view the second message box but then it results in an error when it tries to display the image.
Code:
Dim strDetails As String
strDetails = DLookup("Details", "ExistingDeviceDetailsQ")
Dim strCurve As String
strCurve = DLookup("PCurve", "DeviceT", "DeveloperProduct = '" & Forms!DeviceF!D_ExistingDeviceCmb & "'")
If strCurve = "No" Then
MsgBox strDetails, , "Device Details"
[code]....
I get the error "Object variable or With block variable not set" on the line
image = DLookup("PowerCurve", "DeviceT", "DeveloperProduct = '" & Forms!DeviceF!D_ExistingDeviceCmb & "'")
View 2 Replies
View Related
Jul 17, 2015
Access 2013...Code that has been working is suddenly causing the error "Object invalid or no longer set". Line causing the error is marked.
Code:
Private Sub CreateTable()
Dim dbsDb As dao.Database
Dim tblTemp As dao.TableDef
Dim fldTemp As dao.Field
Dim rst As dao.Recordset
Dim rstRsF As dao.Recordset
[code]...
View 9 Replies
View Related
Sep 12, 2014
Actually in a powerpoint slide, I am having a set of 31 shapes having their names as numbers from 1 to 31.
How to refer by its name?
By hardcoding I refer it like this:
activepresentation.slides(1).shapes("1").someprope rty = somevalue
How to do it in a loop?
Code:
for i = 1 to 31
activepresentation.slides(1).shapes(i).someproperty = somevalue
next i
The above code will refer the shapes only by the index. But the shapes are not having index and name as same.
View 9 Replies
View Related
Sep 26, 2013
I have 2 databases (accdb). Both databases have a loading pop form. Also both databases include the following line of code when the loading form opens:
Code:
docmd.runcommand acCmdAppMinimize
This code works great when I open the databases individually. but my problem is that I have a label on the pop form in accdb 1 with its hyperlink address set to accdb 2 and the subaddress set to the macro name.The hyperlink opens the database 2 just fine and it opens the loading form but it doesn't minimize the application window.
View 1 Replies
View Related
Mar 18, 2014
I have a form with a query set up as the record source. If there are records in this query, the form will display. When the user clicks a button, if there is another record in this query, the form displays the next record. When it gets to the EOF, it should close this form, but EOF is not being recognized (I run debug and it says it's false when the button is clicked)? I get run-time error '3201' after I click the button twice.
I know for a fact that there are 2 records in this query. So once I click the button on the 2nd record, the form should close.
Code:
Private Sub SelectTblMyMedButton_Click()
Dim db As DAO.Database
Dim rs As DAO.Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("qryMedDataSelect", dbOpenDynaset)
[Code] .....
View 3 Replies
View Related
Jul 8, 2014
I have learned the basic looping technique for going through a record set from the following link. I need to know if my logic is on the right track. URL...
My question is a followup to a thread that was opened on this forum: URL....I want to do the following:
1) Use record set looping technique to fix a variety of incorrect naming conventions to a standard format
2) Update the table (or create a new table) from the updated record set values. (Is my logic going to update the table selected in the code I used to dimension the record set or will I need to do something else to make the changes available for other tasks after record set is closed ? After the naming conventions are fixed this data will be available for excel automation that I am working on and posting questions on another thread in this forum. HAHA I'm going code BANANAS)
3) rs.fields![fleetlocation] is used so many times, how can I make this a variable (what do I dimension the variable as?)
4) Use an AND statment with an if statment (how to do this with correct syntax)
Code:
sub loopandfix()
on error goto errorhandler:
strSQL = "tblUnionQueryResults" 'table was created from a union query but has inconsistant naming conventions for the fleet location name
[code]....
View 9 Replies
View Related
Oct 23, 2014
I have VBA code that makes use of the Microsoft Office 14.0 Object Library, but if I have this selected whenever I try to do anything in the Form Design view it is constantly freezing. It will literally say not responding" for a minute or so then I will have control again.
View 7 Replies
View Related
Aug 7, 2015
I am in the midst of migrating an Access 2003 database to Access 2007 and one of its most important module uses the filesearch object to transfer table data from word files into a table in the databse.
Code:
Option Compare Database
Option Explicit
Public Function ImportPathTableData()
Dim objWord As Object
Dim objDoc As Word.Document
Dim db As Database
Dim data As Recordset
Dim bWord As Boolean
Dim strFolderName, strNPID, strTemp As String
Dim tablenb, table, row, column, i As Integer
[code]....
View 1 Replies
View Related
Jan 12, 2015
I am trying to connect to MS Access from MS word using the following code but getting the above error message:
Code:
Sub GetDataFromDataBase()
'allocate memory for the database object as a whole and for the active record
Dim myDataBase As Database
Dim myActiveRecord As Recordset
[Code] .....
View 2 Replies
View Related
Mar 19, 2014
I have this below which some people cant run and some people can. All are using 2010 runtime version. Apart from the one guy who can run the macro who has full 2010 version. I have 2010 runtime installed and i can also run the macro fine.
Private Sub Option12_Click()
On Error GoTo Option12_Click_err
Dim CntlPay As String
Dim Lable As String
CntlPay = "D"
[code]....
View 1 Replies
View Related
Aug 21, 2013
Basically I have a form where a user has selected a couple values from a dropdown element, and entered a few other text values into the form. I am then trying to grab the values and append them to a table.
Code:
Private Sub btnSubmitInputVendorPerformanceForm_Click() 'Button Is part of frmInputVendorPerformance
Dim ValueCheck As Integer 'Increments to make sure no errors in entry
Dim ErrorShow As String
Dim YesorNoAnswerToMessageBox As String
Dim QuestionToMessageBox As String
Dim DeliveryRate As String
[code]....
View 4 Replies
View Related