用的是VB6.0 在win7的环境下:
引用:Microsoft Office 12.0 Access database engine Object Library
     Microsoft ADO Ext.6.0 for DDL and Security
问题描述:我的where条件字段,在Access中是文本类型,在VB中传进去的条件,是String类型的,我把在“本地窗口”查看VB生成的SQL语句,复制到了Access中运行,是没有报错的。而且我换成查询Access中数字类型的字段,也不会报这个错。但是换成文本类型就不行,老提示类型不对。实在是想不出招了~~
==========================================
Dim Dbdate As Database
Dim MemDate As RecordsetPrivate Sub Form_Load()
   Set DBdate = EBengine.Workspaces(0).OpenDatabase(App Path & "\Text.mdb")
End SubPrivate Sub Command1_Click()   Dim Prodid2 As String
   Prodid2 = "11111"
   Set MemDate = DBdate.OpenRecordset("select * from TextTable where prodid1= " 
   & Prodid2)
   Text3.Text = MemDate!prodid1End Subs
VBaccess文本类型转换数据库查询

解决方案 »

  1.   

    你这个是使用dao不是ado查询表达式有问题
    Set MemDate = DBdate.OpenRecordset("select * from TextTable where prodid1= '"& Prodid2 &"'") 对应字串类型的常量,查询要用''包起来
    日期常量要要##包起来查询串看起来应该在这样:select * from TextTable where prodid1= 'a产品'
    select * from TextTable where TheDate= #2011-2-1#
      

  2.   


    大神在追加一个问题
    我的Access表中,ProdID1字段有10000000000001 字符。但是我带入代码查询的时候,提示查询为空?这是什么原因?我看调试中,显示的条件都没有问题哦!
    我在监视窗口中看到SQL的条件是1111111而不是prodid2 = "10000000000001"的值呢?