首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

有关SQl语句,Select Into的有关问题

2012-12-24 
有关SQl语句,Select Into的问题原来的代码如下:Dim strConn As String ProviderMicrosoft.Jet.OLEDB.4

有关SQl语句,Select Into的问题
原来的代码如下:
    Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & OpenFileDialog1.FileName & ";Persist Security Info=False"
    Dim strSql As String = "SELECT * INTO tblFileInfo IN '" & Txt_OutFolder.Text & "\Test_tblFileInfo.xls' 'EXCEL 5.0;' FROM tblFileInfo"

目的是打开一个由用户指定的MDB文件,将其中的表转换成XLS文件,并放在用户指定的路径下。现在的问题是,上面的代码是将表名给固定的,我想改成变量,但是会报错,求解答。
报错的代码:
        Dim strSql As String = "SELECT * INTO " & tblName & " IN '" & Txt_OutFolder.Text & "\Test_" & tblName & ".xls' 'EXCEL 5.0;' FROM " & tblName & ""

在DEBUG时,可以在tblName中看到值,但是在 cnn.Execute(strSql)中,strSql里,tblName是空值
[最优解释]
另外,不要把 strSQL 声明为常量。

Dim strSql As String

获取 tblName 的值之后,

strSql = "SELECT * INTO " & tblName & " IN '" & Txt_OutFolder.Text & "\Test_" & tblName & ".xls' 'EXCEL 5.0;' FROM " & tblName & ""

[其他解释]
http://download.csdn.net/detail/veron_04/1644211
http://download.csdn.net/detail/veron_04/3827200
[其他解释]
tblName 从哪里来的?你在中间做了什么?

[其他解释]
  Do Until rs.EOF
            If rs("TABLE_TYPE").Value = "TABLE" Then
                cobTable.Add(rs("TABLE_NAME").Value)
            End If
            rs.MoveNext()
        Loop
        Dim tblCount As Integer = cobTable.Count
        rs.Close()
        rs = New ADODB.Recordset
        For i = 0 To tblCount - 1
            tblName = cobTable(i).ToString()
            If tblName <> " " Then
                MsgBox(tblName)
                cnn.Execute(strSql)

在遍历MDB文件下所有表之后,获取表名赋值给tblName
[其他解释]
问题解决了。。。脑子一下子抽住了,在还没获取tblName值的时候就先把strSql给定义好了,当然是空值了。。。被of123的话给启发了,感谢你的解答
修改后代码,已成功。
       For i = 0 To tblCount - 1
            tblName = cobTable(i).ToString()
            If tblName <> " " Then


                MsgBox(tblName)
                strSql = strSql + "SELECT * INTO " & tblName & " "
                strSql = strSql + "IN '" & Txt_OutFolder.Text & "\Test_" & tblName & ".xls' 'EXCEL 5.0;'"
                strSql = strSql + "FROM " & tblName & ""
                cnn.Execute(strSql)

热点排行