Group:  Microsoft Access ยป microsoft.public.access.formscoding
Thread: Coding help run-time error '3464'

Geek News

Coding help run-time error '3464'
Momof2 12/23/2008 2:52:02 PM
I have a form with 3 combo boxes in which I want to use to pull information
from a report. Orginially I had only one combo box in which I was able to
get to work using the following code.
Dim StrWhere As String
StrWhere = "[Contractor] = """ & Me.Combo0 & """""
DoCmd.OpenReport "coding", acViewPreview, , StrWhere

then I added to other combo boxes and tried using the following code
Dim StrWhere As String
StrWhere = "[Contractor] = """ & Me.Combo0 & """" And [Statement] = """_
& Me.Combo2 & """ And [Card] = """ & Me.Combo4 & """""
DoCmd.OpenReport "coding", acViewPreview, , StrWhere

Now I keep getting an error message Run-time error '3464' Data Type mismatch
in criteria experssion. Any ideas on how to make this work?
Re: Coding help run-time error '3464'
Marshall Barton <marshbarton[ at ]wowway.com> 12/23/2008 3:24:41 PM
Momof2 wrote:

[Quoted Text]
>I have a form with 3 combo boxes in which I want to use to pull information
>from a report. Orginially I had only one combo box in which I was able to
>get to work using the following code.
> Dim StrWhere As String
> StrWhere = "[Contractor] = """ & Me.Combo0 & """""
> DoCmd.OpenReport "coding", acViewPreview, , StrWhere
>
>then I added to other combo boxes and tried using the following code
> Dim StrWhere As String
> StrWhere = "[Contractor] = """ & Me.Combo0 & """" And [Statement] = """_
> & Me.Combo2 & """ And [Card] = """ & Me.Combo4 & """""
> DoCmd.OpenReport "coding", acViewPreview, , StrWhere
>
>Now I keep getting an error message Run-time error '3464' Data Type mismatch
>in criteria experssion. Any ideas on how to make this work?


Your quotes are out of whack. And, if any of those fields
are a numeric type, you should not have quotes around the
value.

Even the original expression that you said works has the
quotes wrong, so I am confused about what you posted. If
you retyped the code into your post, repost using Copy/Paste
instead of retyping so we don't waste time going back and
forth discussing posting typos. Be sure to include the data
types of the Contractor, Statement and Card fields in the
table in your reply.

--
Marsh
MVP [MS Access]
Re: Coding help run-time error '3464'
Momof2 12/23/2008 3:47:01 PM
I did copy/paste the code that was used in VBA. Contractor data type is
lastname, First name. Statement data type is (mm/dd/yy) and card data type is
(ex: visa, wachovia, Amex). The orginal code still works if I remove the
statement and card.

hope this helps

"Marshall Barton" wrote:

[Quoted Text]
> Momof2 wrote:
>
> >I have a form with 3 combo boxes in which I want to use to pull information
> >from a report. Orginially I had only one combo box in which I was able to
> >get to work using the following code.
> > Dim StrWhere As String
> > StrWhere = "[Contractor] = """ & Me.Combo0 & """""
> > DoCmd.OpenReport "coding", acViewPreview, , StrWhere
> >
> >then I added to other combo boxes and tried using the following code
> > Dim StrWhere As String
> > StrWhere = "[Contractor] = """ & Me.Combo0 & """" And [Statement] = """_
> > & Me.Combo2 & """ And [Card] = """ & Me.Combo4 & """""
> > DoCmd.OpenReport "coding", acViewPreview, , StrWhere
> >
> >Now I keep getting an error message Run-time error '3464' Data Type mismatch
> >in criteria experssion. Any ideas on how to make this work?
>
>
> Your quotes are out of whack. And, if any of those fields
> are a numeric type, you should not have quotes around the
> value.
>
> Even the original expression that you said works has the
> quotes wrong, so I am confused about what you posted. If
> you retyped the code into your post, repost using Copy/Paste
> instead of retyping so we don't waste time going back and
> forth discussing posting typos. Be sure to include the data
> types of the Contractor, Statement and Card fields in the
> table in your reply.
>
> --
> Marsh
> MVP [MS Access]
>
Re: Coding help run-time error '3464'
Marshall Barton <marshbarton[ at ]wowway.com> 12/23/2008 4:25:49 PM
Those are not field data types. They're more like examples
or formats. You need to look at the table in design view to
see the data types. I think, but can not be sure, that the
data types are:

Contractor Text
Statement Date (could be Text??)
Card Text

You should have a compile error or different code for your
original code. It should be:

StrWhere = "[Contractor] = """ & Me.Combo0 & """"

That's 1, 3, 4 quotes, not 1, 3, 5

Assuming my guess at the field data types is correct, the
new expression could be more like:

StrWhere = "Contractor = """ & Me.Combo0 _
& """ And Statement = " _
& Format(Me.Combo2, "\#yyyy-m-d\#") _
& " And Card = """ & Me.Combo4 & """"
Debug.Print StrWhere

Be sure to count the quotes carefully.

The Debug.Print is just there for testing so you can see the
results of the expression in the Immediate window, Remove
or comment it out after you get all this working.
--
Marsh
MVP [MS Access]


Momof2 wrote:
[Quoted Text]
>I did copy/paste the code that was used in VBA. Contractor data type is
>lastname, First name. Statement data type is (mm/dd/yy) and card data type is
>(ex: visa, wachovia, Amex). The orginal code still works if I remove the
>statement and card.
>
>"Marshall Barton" wrote:
>> Your quotes are out of whack. And, if any of those fields
>> are a numeric type, you should not have quotes around the
>> value.
>>
>> Even the original expression that you said works has the
>> quotes wrong, so I am confused about what you posted. If
>> you retyped the code into your post, repost using Copy/Paste
>> instead of retyping so we don't waste time going back and
>> forth discussing posting typos. Be sure to include the data
>> types of the Contractor, Statement and Card fields in the
>> table in your reply.

>
>> Momof2 wrote:
>> >I have a form with 3 combo boxes in which I want to use to pull information
>> >from a report. Orginially I had only one combo box in which I was able to
>> >get to work using the following code.
>> > Dim StrWhere As String
>> > StrWhere = "[Contractor] = """ & Me.Combo0 & """""
>> > DoCmd.OpenReport "coding", acViewPreview, , StrWhere
>> >
>> >then I added to other combo boxes and tried using the following code
>> > Dim StrWhere As String
>> > StrWhere = "[Contractor] = """ & Me.Combo0 & """" And [Statement] = """_
>> > & Me.Combo2 & """ And [Card] = """ & Me.Combo4 & """""
>> > DoCmd.OpenReport "coding", acViewPreview, , StrWhere
>> >
>> >Now I keep getting an error message Run-time error '3464' Data Type mismatch
>> >in criteria experssion. Any ideas on how to make this work?
Re: Coding help run-time error '3464'
Momof2 12/23/2008 7:10:01 PM
Sorry I'm new to access.
Contractor TEXT
Statement Date/Time (mm/dd/yyyy format)
Card TEXT

I tried the expression below, it opens the report however the report shows
up blank with an "error" where the statement date is on the report. I even
tried ultering your expression chaning to the mm/dd/yyyy format and am still
getting the same error. Any ideas?

"Marshall Barton" wrote:

[Quoted Text]
> Those are not field data types. They're more like examples
> or formats. You need to look at the table in design view to
> see the data types. I think, but can not be sure, that the
> data types are:
>
> Contractor Text
> Statement Date (could be Text??)
> Card Text
>
> You should have a compile error or different code for your
> original code. It should be:
>
> StrWhere = "[Contractor] = """ & Me.Combo0 & """"
>
> That's 1, 3, 4 quotes, not 1, 3, 5
>
> Assuming my guess at the field data types is correct, the
> new expression could be more like:
>
> StrWhere = "Contractor = """ & Me.Combo0 _
> & """ And Statement = " _
> & Format(Me.Combo2, "\#yyyy-m-d\#") _
> & " And Card = """ & Me.Combo4 & """"
> Debug.Print StrWhere
>
> Be sure to count the quotes carefully.
>
> The Debug.Print is just there for testing so you can see the
> results of the expression in the Immediate window, Remove
> or comment it out after you get all this working.
> --
> Marsh
> MVP [MS Access]
>
>
> Momof2 wrote:
> >I did copy/paste the code that was used in VBA. Contractor data type is
> >lastname, First name. Statement data type is (mm/dd/yy) and card data type is
> >(ex: visa, wachovia, Amex). The orginal code still works if I remove the
> >statement and card.
> >
> >"Marshall Barton" wrote:
> >> Your quotes are out of whack. And, if any of those fields
> >> are a numeric type, you should not have quotes around the
> >> value.
> >>
> >> Even the original expression that you said works has the
> >> quotes wrong, so I am confused about what you posted. If
> >> you retyped the code into your post, repost using Copy/Paste
> >> instead of retyping so we don't waste time going back and
> >> forth discussing posting typos. Be sure to include the data
> >> types of the Contractor, Statement and Card fields in the
> >> table in your reply.
>
> >
> >> Momof2 wrote:
> >> >I have a form with 3 combo boxes in which I want to use to pull information
> >> >from a report. Orginially I had only one combo box in which I was able to
> >> >get to work using the following code.
> >> > Dim StrWhere As String
> >> > StrWhere = "[Contractor] = """ & Me.Combo0 & """""
> >> > DoCmd.OpenReport "coding", acViewPreview, , StrWhere
> >> >
> >> >then I added to other combo boxes and tried using the following code
> >> > Dim StrWhere As String
> >> > StrWhere = "[Contractor] = """ & Me.Combo0 & """" And [Statement] = """_
> >> > & Me.Combo2 & """ And [Card] = """ & Me.Combo4 & """""
> >> > DoCmd.OpenReport "coding", acViewPreview, , StrWhere
> >> >
> >> >Now I keep getting an error message Run-time error '3464' Data Type mismatch
> >> >in criteria experssion. Any ideas on how to make this work?
>
Re: Coding help run-time error '3464'
Marshall Barton <marshbarton[ at ]wowway.com> 12/23/2008 7:55:07 PM
Momof2 wrote:

[Quoted Text]
>Sorry I'm new to access.
>Contractor TEXT
>Statement Date/Time (mm/dd/yyyy format)
>Card TEXT
>
>I tried the expression below, it opens the report however the report shows
>up blank with an "error" where the statement date is on the report. I even
>tried ultering your expression chaning to the mm/dd/yyyy format and am still
>getting the same error.


Please post what you actually used along with the report's
record source query. If the report's record source is a
table, list the fields and their data type.

A blank report with #Error in the bound text boxes strongly
implies that there are no records that match the conditions
in the strWhere string.

One common reason for that happening when everything "looks"
like it should work is the use of Lookup fields in the
table's design. Be sure to check for these things and
explain the details of any that you find.

--
Marsh
MVP [MS Access]
Re: Coding help run-time error '3464'
Momof2 12/23/2008 9:13:02 PM
This is what I actually used
Dim StrWhere As String
StrWhere = "Contractor = """ & Me.Combo0 _
& """ And Statement = " _
& Format(Me.Combo2, "\#mm/dd/yyyy\#") _
& " And Card = """ & Me.Combo4 & """"
DoCmd.OpenReport "coding", acViewPreview, , StrWhere

The reports record source is a coding query with the following fields
Contractor = Text
Statement = Date
Card = Text
Charge Code = Text
Charge Description = Text
Expense Code = Text
Expense Description = Text
Amount = Currency

The report is grouped by
Contractor
Card
Statement
Charge Code, Charge Descrip, Expense Code,
Expense Descrip, Amount.

The combo boxes in which I'm using on my form are bound to the same query,
but using a Select Distinct SQL. Hope this helps.


"Marshall Barton" wrote:
Please post what you actually used along with the report's
record source query. If the report's record source is a
table, list the fields and their data type.

A blank report with #Error in the bound text boxes strongly
implies that there are no records that match the conditions
in the strWhere string.

One common reason for that happening when everything "looks"
like it should work is the use of Lookup fields in the
table's design. Be sure to check for these things and
explain the details of any that you find.


"Marshall Barton" wrote:

[Quoted Text]
> Those are not field data types. They're more like examples
> or formats. You need to look at the table in design view to
> see the data types. I think, but can not be sure, that the
> data types are:
>
> Contractor Text
> Statement Date (could be Text??)
> Card Text
>
> You should have a compile error or different code for your
> original code. It should be:
>
> StrWhere = "[Contractor] = """ & Me.Combo0 & """"
>
> That's 1, 3, 4 quotes, not 1, 3, 5
>
> Assuming my guess at the field data types is correct, the
> new expression could be more like:
>
> StrWhere = "Contractor = """ & Me.Combo0 _
> & """ And Statement = " _
> & Format(Me.Combo2, "\#yyyy-m-d\#") _
> & " And Card = """ & Me.Combo4 & """"
> Debug.Print StrWhere
>
> Be sure to count the quotes carefully.
>
> The Debug.Print is just there for testing so you can see the
> results of the expression in the Immediate window, Remove
> or comment it out after you get all this working.
> --
> Marsh
> MVP [MS Access]
>
>
> Momof2 wrote:
> >I did copy/paste the code that was used in VBA. Contractor data type is
> >lastname, First name. Statement data type is (mm/dd/yy) and card data type is
> >(ex: visa, wachovia, Amex). The orginal code still works if I remove the
> >statement and card.
> >
> >"Marshall Barton" wrote:
> >> Your quotes are out of whack. And, if any of those fields
> >> are a numeric type, you should not have quotes around the
> >> value.
> >>
> >> Even the original expression that you said works has the
> >> quotes wrong, so I am confused about what you posted. If
> >> you retyped the code into your post, repost using Copy/Paste
> >> instead of retyping so we don't waste time going back and
> >> forth discussing posting typos. Be sure to include the data
> >> types of the Contractor, Statement and Card fields in the
> >> table in your reply.
>
> >
> >> Momof2 wrote:
> >> >I have a form with 3 combo boxes in which I want to use to pull information
> >> >from a report. Orginially I had only one combo box in which I was able to
> >> >get to work using the following code.
> >> > Dim StrWhere As String
> >> > StrWhere = "[Contractor] = """ & Me.Combo0 & """""
> >> > DoCmd.OpenReport "coding", acViewPreview, , StrWhere
> >> >
> >> >then I added to other combo boxes and tried using the following code
> >> > Dim StrWhere As String
> >> > StrWhere = "[Contractor] = """ & Me.Combo0 & """" And [Statement] = """_
> >> > & Me.Combo2 & """ And [Card] = """ & Me.Combo4 & """""
> >> > DoCmd.OpenReport "coding", acViewPreview, , StrWhere
> >> >
> >> >Now I keep getting an error message Run-time error '3464' Data Type mismatch
> >> >in criteria experssion. Any ideas on how to make this work?
>
Re: Coding help run-time error '3464'
Marshall Barton <marshbarton[ at ]wowway.com> 12/23/2008 10:24:53 PM
Momof2 wrote:

[Quoted Text]
>This is what I actually used
> Dim StrWhere As String
>StrWhere = "Contractor = """ & Me.Combo0 _
> & """ And Statement = " _
> & Format(Me.Combo2, "\#mm/dd/yyyy\#") _
> & " And Card = """ & Me.Combo4 & """"
>DoCmd.OpenReport "coding", acViewPreview, , StrWhere
>
>The reports record source is a coding query with the following fields
>Contractor = Text
>Statement = Date
>Card = Text
>Charge Code = Text
>Charge Description = Text
>Expense Code = Text
>Expense Description = Text
>Amount = Currency
>
>The report is grouped by
>Contractor
> Card
> Statement
> Charge Code, Charge Descrip, Expense Code,
>Expense Descrip, Amount.
>
>The combo boxes in which I'm using on my form are bound to the same query,
>but using a Select Distinct SQL.


The report looks straightforward enough. You did say it
works fine with just your original code, right?

The query looks OK, but all bets are off if there are any
Lookup fields in there.

A single SELECT DISTINCT query based on the report's record
source query is unlikely to be useful for three different
combo boxes. You are probably using three different SELECT
DISTINCT queries. Either way, I need to check the queries
along with the comboxes' BoundColumn property. More details
please.

What did you find when you checked the table for Lookup
fields?

What did the Debug.Print display in the Immediate window?

--
Marsh
MVP [MS Access]
Re: Coding help run-time error '3464'
Momof2 12/24/2008 1:26:00 PM
Yes it does work with the original code when I am only looking up the
contractor. Its when I add the statement and card that throws it off.

I looked in the query and there are no lookup fields there. and you are
correct I am using three Select Distinct Queries based off the original
table.

this is what I get in the immediate window
Contractor = "Smith, Brian" And Statement = #11/22/2008# And Card = "WACHOVIA"



"Marshall Barton" Wrote:

The report looks straightforward enough. You did say it
works fine with just your original code, right?

The query looks OK, but all bets are off if there are any
Lookup fields in there.

A single SELECT DISTINCT query based on the report's record
source query is unlikely to be useful for three different
combo boxes. You are probably using three different SELECT
DISTINCT queries. Either way, I need to check the queries
along with the comboxes' BoundColumn property. More details
please.

What did you find when you checked the table for Lookup
fields?

What did the Debug.Print display in the Immediate window?

"Marshall Barton" wrote:

[Quoted Text]
> Those are not field data types. They're more like examples
> or formats. You need to look at the table in design view to
> see the data types. I think, but can not be sure, that the
> data types are:
>
> Contractor Text
> Statement Date (could be Text??)
> Card Text
>
> You should have a compile error or different code for your
> original code. It should be:
>
> StrWhere = "[Contractor] = """ & Me.Combo0 & """"
>
> That's 1, 3, 4 quotes, not 1, 3, 5
>
> Assuming my guess at the field data types is correct, the
> new expression could be more like:
>
> StrWhere = "Contractor = """ & Me.Combo0 _
> & """ And Statement = " _
> & Format(Me.Combo2, "\#yyyy-m-d\#") _
> & " And Card = """ & Me.Combo4 & """"
> Debug.Print StrWhere
>
> Be sure to count the quotes carefully.
>
> The Debug.Print is just there for testing so you can see the
> results of the expression in the Immediate window, Remove
> or comment it out after you get all this working.
> --
> Marsh
> MVP [MS Access]
>
>
> Momof2 wrote:
> >I did copy/paste the code that was used in VBA. Contractor data type is
> >lastname, First name. Statement data type is (mm/dd/yy) and card data type is
> >(ex: visa, wachovia, Amex). The orginal code still works if I remove the
> >statement and card.
> >
> >"Marshall Barton" wrote:
> >> Your quotes are out of whack. And, if any of those fields
> >> are a numeric type, you should not have quotes around the
> >> value.
> >>
> >> Even the original expression that you said works has the
> >> quotes wrong, so I am confused about what you posted. If
> >> you retyped the code into your post, repost using Copy/Paste
> >> instead of retyping so we don't waste time going back and
> >> forth discussing posting typos. Be sure to include the data
> >> types of the Contractor, Statement and Card fields in the
> >> table in your reply.
>
> >
> >> Momof2 wrote:
> >> >I have a form with 3 combo boxes in which I want to use to pull information
> >> >from a report. Orginially I had only one combo box in which I was able to
> >> >get to work using the following code.
> >> > Dim StrWhere As String
> >> > StrWhere = "[Contractor] = """ & Me.Combo0 & """""
> >> > DoCmd.OpenReport "coding", acViewPreview, , StrWhere
> >> >
> >> >then I added to other combo boxes and tried using the following code
> >> > Dim StrWhere As String
> >> > StrWhere = "[Contractor] = """ & Me.Combo0 & """" And [Statement] = """_
> >> > & Me.Combo2 & """ And [Card] = """ & Me.Combo4 & """""
> >> > DoCmd.OpenReport "coding", acViewPreview, , StrWhere
> >> >
> >> >Now I keep getting an error message Run-time error '3464' Data Type mismatch
> >> >in criteria experssion. Any ideas on how to make this work?
>
Re: Coding help run-time error '3464'
Marshall Barton <marshbarton[ at ]wowway.com> 12/24/2008 5:19:14 PM
Momof2 wrote:

[Quoted Text]
>Yes it does work with the original code when I am only looking up the
>contractor. Its when I add the statement and card that throws it off.
>
>I looked in the query and there are no lookup fields there. and you are
>correct I am using three Select Distinct Queries based off the original
>table.
>
>this is what I get in the immediate window
>Contractor = "Smith, Brian" And Statement = #11/22/2008# And Card = "WACHOVIA"


Good, the where string looks like it makes sense.

With this information, it looks even more likely that the
Card field is a Lookup field. I suspect the you have a
table of cards with an ID field and a name field. If the
***table*** your query is based on has the Card field's
Lookup set to a combo box with its BoundColumn set to the ID
and the visible column is the card name, then everything
will look sensible, but what you see is **not** what's
really there. If the Card field does have it Lookup set to
combo box, change it back to text box so you can see the
real value. If that is indeed what's going on, you can fix
the problem by making the card combo box on the form do what
the combo box in the table was doing (i.e. use cards table
as the row source with the BoundColumn set to the ID field).

It doesn't seem likely, but if you have a statements table,
then it is possible that you could have a similar scenario
for the statement field.

If none of that speculation pans out, then look at the data
in the table and make sure that the Statement field does not
have a time part. You should clear the field's Format
property (in the table) so you can see what's really there.
If there is a date part in the Statement field, the fix
would depend on how you want to select the desired card
value.

--
Marsh
MVP [MS Access]

Home | Search | Terms | Imprint Contact
Newsgroups Reader - provided by WiredBox.Net