其实VB中的string类型是够存促的,以前我也考虑过此问题。但在实际开发中还没有遇到过,请楼主把你的strSQL粘出来看看,可以吗?
有可能是sql语法错误,如果太长,在监视窗口中是不能完全显示的。
用MSGBOX strSQL 就可以查找错误啦!(以前遇到过这种情况,希望对你有所帮助)

解决方案 »

  1.   

    dim mydb As ADODB.Connection
    dim rsSel As ADODB.Recordset
    dim strSQL as string myConnectStr = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source="     & App.Path & "\jh.mdb;Jet OLEDB:Database Password=shuikong"
        Set mydb = New ADODB.Connection
        mydb.CursorLocation = adUseClient    rsSel.Open StrSQL, mydb, adOpenStatic, adLockReadOnly
       strSQL超过255字符时,当向服务器传送时总是把后边的截去。诸位老师的建议以前我试过不灵。哪位大侠救救我
      

  2.   

    显然不是数据库引擎的问题。在Microsoft.Jet.OLEDB.4.0下,我曾用过长达674字节的SQL。
      

  3.   

    of123你好,"长达674字节的SQL"是在vb中吗?如果是,给一段源码好吗?
    有效,立即结贴给分。多谢!
      

  4.   

    我觉得这样长的sql语句最好的方法就是作存储过程,没必要写到代码里亚
      

  5.   

    一些统计报表,本身字段就多,要是字段名有意义就要长一点,一个单一查询优势就能超长;access单机数据库存取、查询时数据库并不启动,我没用过存储过程。
    怎末办?
      

  6.   

    楼上两位大侠,能不能说详细点,.cn
    msdn也说超过255字符不行,但有网友说有方法能解决,特此请教
    如能帮我解决,另送100分,多谢了
      

  7.   

    在sql server里可以用存储过程,access里叫做query或查询,都有可视化的设计器,保证比自己写的又快又好
      

  8.   

    楼上大侠,access我也是用的query,效率低啊。谁还有高见?谢谢
      

  9.   

    我建议你先在access里建一个查询,然后写一个len>255的,看行不行.如果不行的话,我也觉的你只有分开执行,你可以把先生成的查询形成一张临时表,然后在对临时表进行查询.其实归根结底是你的数据库设计的时候干吗要用中文呢
      

  10.   

    刚刚试验了一下,根本没255字符的限制。
    重新检查你的代码。
    Dim mydb As Connection
    Dim rssel As Recordset
    Dim strSQL As String myconnectstr = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=d:\aaa.mdb;"
     Set mydb = New ADODB.Connection
      mydb.open myconnectstr
      strSQL = "select * from mytable where name<>'怎么没听过什么sql字符串不能超过255的说法呢难道是我笨笨吗不是吧是的好吧不好23356'"
      Set rssel = New Recordset
      rssel.open strSQL, mydb, 1, 1
      If Not rssel.EOF Then
      MsgBox rssel.Fields(0)
      End If
      rssel.Close
      Set rssel = Nothing
      mydb.Close
      Set mydb = Nothing
      

  11.   

    Msdn说过不能超过255???我刚才试验的时候估计有355个字符以上了。
      

  12.   

    你一定用了ODBC
    ODBC处理的SQL不能超过255
      

  13.   

    我刚刚用了一个SQL,其中光是条件我就加了100个and 怎么可能有长度限制,一定是你其它地方有错误