macromedia.dreamweaver.appdev
[Top] [All Lists]

Data type mismatch in criteria expression

Subject: Data type mismatch in criteria expression
From: "HexBug"
Date: Wed, 30 Jan 2008 17:27:58 +0000 UTC
Newsgroups: macromedia.dreamweaver.appdev

Hello, 

 Questions:
 What is the question mark in the SQL 'IN' condition?
 How can you help me make the list menu work (as did in DW8) where the user can 
select multiple items, submit and then display multiple results?
 Why did CS3 change code that actually worked in DW8?

 Issue Described Below:----------------------------------------------

 I recently completed developing a web application for my organization and the 
working prototype is being tested in our development server. I developed the 
web application in DW8. The web application uses a form request to search for 
data in sql server (or previous in ACCESS database). The code in question 
developed in DW8 actually works. This specific code allows the user to select 
several items from a list menu and then submit and then the multiple results 
are displayed:

 In advance recordset this is what I coded in DW8:

 SELECT *
 FROM tblCustomer
 WHERE ProductID IN (MMColParam)
 ORDER BY ProductID, Model, Month, Year ASC

 In the actual asp page Macromedia DW8 displays:

 <%
 Dim RsCustomer__MMColParam
 RsCustomer__MMColParam = "0"
 If (Request.Form("sltForm")     <> "") Then 
   RsCustomer__MMColParam = Request.Form("sltForm")    
 End If
 %>
 <%
 Dim RsCustomer
 Dim RsCustomer_numRows

 Set  RsCustomer = Server.CreateObject("ADODB.Recordset")
  RsCustomer.ActiveConnection = MM_Customer_STRING
  RsCustomer.Source = "SELECT *  FROM tblCustomer  WHERE ProductID IN (" + 
Replace( RsCustomer__MMColParam, "'", "''") + ")  ORDER BY ProductID, Model, 
Month, Year ASC"
  RsCustomer.CursorType = 0
  RsCustomer.CursorLocation = 2
  RsCustomer.LockType = 1
  RsCustomer.Open()

  RsCustomer_numRows = 0
 %>

 The above code works when I run the application from my local using DW8 and 
now the working prototype is being tested without any issues in development.

 However, we just recently upgraded to CS3. I migrated the application to CS3 
from DW8. When I launch the  search page  from CS3 , I receive the following 
error message (note: I am using an ACCESS database):

 Error Type:
 Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
 [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria 
expression.
 /customer/asp/DisplaySelect2.asp, line 20

 I went into CS3's advance recordset under Parameter section and changed the 
data type to 'Text'and the following code on the actual asp page CHANGED to:

 <%
 Dim RsCustomer
 Dim RsCustomer_cmd
 Dim RsCustomer_numRows

 Set  RsCustomer = Server.CreateObject("ADODB.Recordset")
  RsCustomer.ActiveConnection = MM_Customer_STRING
  RsCustomer.Source = "SELECT *  FROM tblCustomer  WHERE ProductID IN (?)  
ORDER BY ProductID, Model, Month, Year ASC"
 RsCustomer_cmd.Prepared = true
 RsCustomer_cmd.Parameters.Append RsCustomer_cmd.CreateParameter("param1", 200, 
1, 255, RsCustomer__MMColParam) ' adVarChar

 Set RsCustomer = RsCustomer_cmd.Execute
 RsCustomer_numRows = 0
 %>

 Now, When I run the application, I can not display my multiple selections from 
the list menu. I can only select one item and display.

 I appreciate feedback on this. I can't move forward on this application if I 
am having issues with this particular tailored search function, especially if I 
have to make further adjustments on this page in CS3. So your help is greatly 
needed Thank you


<Prev in Thread] Current Thread [Next in Thread>
  • Data type mismatch in criteria expression, HexBug <=