我有2个表 check 和checksub (主细表关系)里面都有个共同得字段 CheckNo 为啥下面的SQL语句出错?"SHAPE {SELECT * FROM Check} APPEND ({SELECT * FROM Checksub} RELATE [CheckNo] TO [CheckNo])"

解决方案 »

  1.   

    这个SQL应该没问题,你那里报什么错?
      

  2.   

    加上别名试试:SHAPE {SELECT * FROM Check} 
    APPEND ({SELECT * FROM Checksub} 
    RELATE CheckNo TO CheckNo) as ch
      

  3.   

    呵呵,跟取别名没关系,应该是Check表那个地方的问题,因为Check是MSSQL的关键字,所以
    需要加上[],改为如下就行了:
    "SHAPE {SELECT * FROM [Check]} APPEND ({SELECT * FROM Checksub} RELATE [CheckNo] TO [CheckNo])"
      

  4.   

    还是不行,提示
    “实时错误 '-2147217900 (80040e14)':
    无效的SQL 语句了;期待 'DELETE'、………………”
      

  5.   

    我给你改过的脚本在我这里运行过,完全没问题!
    出现的提示期待 'DELETE'、………………,不是这句的问题,应该是其它语句(带有Delete的那个)问题,你再看看吧
      

  6.   

    你用什么数据库?是不是ADO连接方式有问题?
      

  7.   

    是ADO连接access数据库。
    Dim adoCon As ADODB.Connection
    Dim rsado As ADODB.Recordset
    Dim strCon As String
    Dim mySQL As StringSet adoCon = New ADODB.ConnectionstrCon = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & FilePath & ";Persist Security Info=False" adoCon.Provider = "MSDataShape"
    adoCon.ConnectionString = strCon
    adoCon.CursorLocation = adUseClientadoCon.OpenSet rsado = New ADODB.RecordsetmySQL = "SHAPE {SELECT * FROM [Check]} APPEND ({SELECT * FROM [Checksub]} RELATE [CheckNo] TO [CheckNo])"rsado.CursorType = 1
    rsado.Open mySQL, adoCon'这里出错。
      

  8.   

    问题出在连接字符串strCon
    将strCon中的Provider改为Data Provider即可,即: 
    strCon = "DATA PROVIDER=Microsoft.Jet.OLEDB.4.0; Data Source=" & FilePath & ";Persist Security Info=False"