Hi I am running the following query in access query builder. The name of the query is "qryTempRecEFTBankedMaxDate": - SELECT Max(qryTempRecEFTBanked.Dt) AS MaxOfDt
-
FROM qryTempRecEFTBanked;
-
it returns a date which exactly what I wanted, but when I run this code in VBA: - strSqlMaxDate = "qryTempRecEFTBankedMaxDate"
-
rst.Open strSqlMaxDate, cnn, adOpenDynamic, adLockOptimistic
-
With rst
-
If rst.EOF And rst.BOF Then MsgBox "The recordset is blank"
-
dtBankMax = !MaxOfDt
-
End With
!MaxOfDt returns as Null, even though rst.EOF = false and also rst.BOF = False. I don't know whether it helps but "qryTempRecEFTBankedMaxDate" is based on the query "qryTempRecEFTBanked" the Sql for "qryTempRecEFTBanked" is as follows: - SELECT Sum(tblBank.Amount) AS SumOfAmount, tblBank.Dt, Val(Right(nz([SerialID],0),1)) AS ConsID, nZ([RecID],0) AS ReconID, tblBank.Desc
-
FROM tblBank LEFT JOIN tblReconciled ON tblBank.BankID = tblReconciled.BankID
-
GROUP BY tblBank.Dt, Val(Right(nz([SerialID],0),1)), nZ([RecID],0), tblBank.Desc
-
HAVING (((Sum(tblBank.Amount))<>0) AND ((tblBank.Dt)>#6/30/2008#) AND ((Val(Right(nz([SerialID],0),1)))=4 Or (Val(Right(nz([SerialID],0),1)))=5 Or (Val(Right(nz([SerialID],0),1)))=7) AND ((nZ([RecID],0))=0) AND ((tblBank.Desc) Like "*HANDYWAY*"))
-
ORDER BY tblBank.Dt;
-
Many Thanks
14 3765 NeoPa 32,557
Recognized Expert Moderator MVP
Can't see much wrong there :(
Check out the rst.Open (line #2) for correct parameters, and make sure that rst is defined as DAO.Recordset if you need that or ADODB.Recordset otherwise.
It could simply be the .Open line not working as expected. Check it out in the debugger ( Debugging in VBA).
ADezii 8,834
Recognized Expert Expert @iheartvba Try: - Dim strSqlMazdate As String
-
Dim rst As ADODB.Recordset
-
Dim cnn As ADODB.Connection
-
-
Set rst = New ADODB.Recordset
-
Set cnn = CurrentProject.Connection
-
-
strSqlMaxDate = "qryTempRecEFTBankedMaxDate"
-
-
With rst
-
.Open strSqlMaxDate, cnn, adOpenDynamic, adLockOptimistic
-
If .BOF And .EOF Then
-
MsgBox "The recordset is blank"
-
Else
-
MsgBox !MaxOfDt
-
End If
-
End With
-
-
rst.Close
-
Set rst = Nothing
I have tried all of the above suggetions. Here are some snipets of my code (if the following code is run in my opinion the code should still work) - Public cnn As ADODB.Connection
-
Public rst As New ADODB.Recordset
-
Private Sub cmdMaxDate_Click()
-
Set cnn = CurrentProject.Connection
-
Dim strSqlMaxDate As String
-
strSqlMaxDate = "qryTempRecEFTBankedMaxDate"
-
rst.Open strSqlMaxDate, cnn, adOpenDynamic, adLockOptimistic
-
With rst
-
If rst.EOF And rst.BOF Then MsgBox "Empty Recordset"
-
dtBankMax = !maxofdt
-
End With
-
End Sub
-
ADezii 8,834
Recognized Expert Expert @iheartvba - If rst.EOF And rst.BOF Then MsgBox "Empty Recordset"
-
'You are attempting to retrieve a Field from a Field in an
-
'Empty Recordset, move to Else Clause
-
Else
-
'You've assigned the Value of !maxofdt to dtBankMax, but where
-
'is it Declared, and how is it displayed/utilized?
-
dtBankMax = !maxofdt
-
MsgBox dtBankMax 'Verify?
-
End If
FishVal 2,653
Recognized Expert Specialist
Just a thought.
Could it be synchronization problem?
Did you try to use MoveLast method to force record fetch in recordset object?
Did you try to break the code execution after recordset has been opened and:
a) run code in step mode?
b) inspect rst variable in Watch window?
Regards,
Fish.
NeoPa 32,557
Recognized Expert Moderator MVP @NeoPa
I don't know if you overlooked my earlier post, but checking up from work (where I now have easier access to the information required) it seems that the Open method is a specifically ADODB.Recordset method. This means that unless your rst variable has been defined as ADODB.Recordset (We can't tell as you haven't shared this information) this code will not work (as Access uses DAO generally by default - at least in the older versions). DAO & ADODB do behave differently. ADODB will have different characters for wildcards for instance. This will behave in a different way from the way you would expect Access to behave (For the standard Access ways use DAO).
When I checked the Help system for the Open method of an ADODB recordset the first parameter (Source) did not list a QueryDef as a possible value. Do you have any reason to suppose this is working as you intend?
Hi
Okay there are 2 posts I would like to attention Post 7 and Post 6:
Post 7:
"...This means that unless your rst variable has been defined as ADODB.Recordset (We can't tell as you haven't shared this information)..."
A: Please see line 2 of the code in Post 4, it shows that the rst variable has been defined as New ADODB.Recordset.
Post 6:
Q:Could it be synchronization problem?
Did you try to use MoveLast method to force record fetch in recordset object?
A: I used the query which "qryTempRecEFTBankedMaxDate" is based on. The name of the query I used is "qryTempRecEFTBanked" (see post 1 for the Sql) but even before I could use the .movelast function, it was coming up as an empty recordset I.E. rst.bof =True and rst.eof =True.
Then I tried to use the actual Sql code but it is giving me the error "Query does not include xxx as part of an aggregate function"
My code is as follows: -
Public cnn As ADODB.Connection
-
Public rst As New ADODB.Recordset
-
Private Sub cmdMaxDate_Click()
-
strSqlMaxDate = "SELECT Sum(tblBank.Amount) AS SumOfAmount, tblBank.Dt, " & _
-
"Val(Right(nz([SerialID],0),1)) AS ConsID, nZ([RecID],0) AS ReconID, tblBank.Desc " & _
-
"FROM tblBank LEFT JOIN tblReconciled ON tblBank.BankID=tblReconciled.BankID " & _
-
"GROUP BY tblBank.Dt, Val(Right(nz([SerialID],0),1)), nZ([RecID],0), tblBank.Desc " & _
-
"HAVING ((((Sum(tblBank.Amount)) <> 0) And ((tblBank.Dt) > #6/30/2008#) And " & _
-
"((Val(Right(nZ([SerialID], 0), 1))) = 4 Or (Val(Right(nZ([SerialID], 0), 1))) = 5 " & _
-
"Or (Val(Right(nZ([SerialID], 0), 1))) = 7) And ((nZ([RecID], 0))=0) And ((tblBank.Desc) Like '* HANDYWAY *'))) " & _
-
"ORDER BY tblBank.Dt;"
-
rst.Open strSqlMaxDate, cnn, adOpenDynamic, adLockOptimistic
-
With rst
-
If rst.EOF And rst.BOF Then
-
MsgBox "empty recordset"
-
Else
-
dtBankMax = !Dt
-
MsgBox dtBankMax
-
End If
-
End With
-
End Sub
-
ADezii 8,834
Recognized Expert Expert
Would it be possible to E-Mail a subset of the Database as an Attachment where we can visually see what is going on? The data would not have to be real, just representative.
yes whats your e-mail address?
I have found the problem. It doesn't like it when I filter Desc by Like "*HandyWay*". Thats it, everything else is fine. But I need to have that Filter. :S
NeoPa 32,557
Recognized Expert Moderator MVP @iheartvba
I apologise. Clearly it was there by the time I posted if I'd read through your post more carefully. I'd seen that you hadn't replied to my post and skimmed quickly through the other posts. It's actually quite time-consuming trying to work in the absence of direct responses as it's never clear where you are.
You may have picked up in my earlier response (post #7) also that one of the things to watch out for when using ADODB (rather than DAO) is the difference of the wildcard characters (which appears to be at the heart of your problem). Check out ANSI Standards in String Comparisons for help with that.
Sorry about not replying directly NeoPa, I now understand how it can cause some confustion. I will try to be more carefull next time.
You were correct in Post 7 about the wildcards, excuse me for missing that. The Correct code is as follows: -
Public cnn As ADODB.Connection
-
Public rst As New ADODB.Recordset
-
Private Sub cmdMaxDate_Click()
-
Dim strSqlMaxDate As String
-
Dim strSqlBank As String
-
strSqlBank = "(SELECT Sum(tblBank.Amount) AS BankedAmount, tblBank.Dt, " & _
-
"Val(Right(nz([SerialID],0),1)) AS ConsID, nZ([RecID],0) AS ReconID, tblBank.Desc " & _
-
"FROM tblBank LEFT JOIN tblReconciled ON tblBank.BankID=tblReconciled.BankID " & _
-
"GROUP BY tblBank.Dt, Val(Right(nz([SerialID],0),1)), nZ([RecID],0), tblBank.Desc, tblBank.Amount)"
-
strSqlMaxDate = " SELECT BankedAmount, Dt, ConsID, ReconID, Desc " & _
-
"FROM " & strSqlBank & " " & _
-
"WHERE BankedAmount <>0 And Dt > #6/30/2008# And ConsID = 4 Or ConsID = 5 or ConsID = 7 " & _
-
"And ReconID = 0 And Desc Like '% HANDYWAY %' " & _
-
"ORDER BY Dt"
-
rst.Open strSqlMaxDate, cnn, adOpenDynamic, adLockOptimistic
-
With rst
-
dtBankMax = !Dt
-
End With
-
End Sub
-
NeoPa 32,557
Recognized Expert Moderator MVP
No worries :)
I'm pleased that you got it sorted, and we always appreciate that you post your solutions when you find them. It makes the whole process work so much better for any others that come along later with similar problems. Good for you.
PS. I assume that going from "*HANDYWAY*" (No spaces) to "% HANDYWAY %" (Spaces) was a deliberate choice on your part. If not I'm sure that you'll appreciate it's a little different that way.
No that is by accident, I't won't make a difference, but thanks for the pick up.
Sign in to post your reply or Sign up for a free account.
Similar topics |
by: Rigga |
last post by:
Hi,
I am new to mysql and need help on how to join tables. I have a database
which contains 4 tables, the main table contains information by date order
and the other 3 contain data also in date...
|
by: Eric J Owens |
last post by:
TIA for any help!
I have an a2k mdb front end using sql server 2k on backend. my form show
router port assignments, when an assignment is deleted, there is a button
that is supposed to set the...
|
by: Ike |
last post by:
I have a simple query of joined tables that is failing to give me any rows
of data (though, in checking by hand, it certainly should). Essentially, I
am trying to return all rows from `ups` that...
|
by: Jim |
last post by:
I have a form named FindData that has a field on it named txtUID. If a
person types in an ID and clicks the search button, I want the query to
find all the records in the table MAIN that have the...
|
by: geotso |
last post by:
Here is the scenario:
1. I have a table (tblCalendar) with the following fields:
caldID
caldDate
caldTitle
caldInfo
nWinW
nWinH
| |
by: sbowman |
last post by:
I'm trying to get a query in access to give me a parsed string if the
field contents are not null and the value from another field if the
field contents are null. I have the following in the...
|
by: me |
last post by:
I have written a query that joins four or five tables. One table has
30,000 rows. Another table has only 200. I want to only return the
200 or so rows in the smaller table and columns from the...
|
by: Stan |
last post by:
I am running in ACCESS 2003 a database with a single table. It
records service rendered to clients of a food pantry. As each client
is served the date is entered into 1-6 fields SvcDate1,...
|
by: paulmitchell507 |
last post by:
I think I am attempting a simple procedure but I just can't figure out
the correct syntax. My asp (classic) page runs a SELECT query to
obtain dates and ID's from 2 tables
uSQL = "SELECT...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers,...
| |
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new...
|
by: 6302768590 |
last post by:
Hai team
i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...
| |
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
| |