Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA Teradata SQL_Sql_Excel_Teradata_Vba - Fatal编程技术网

VBA Teradata SQL

VBA Teradata SQL,sql,excel,teradata,vba,Sql,Excel,Teradata,Vba,由于某些原因,它返回运行时错误3021,在Terada SQLAssistant中尝试时,SQL字符串工作正常 有人能告诉我我做错了什么吗 单元格中的值等于John Doe Dim ConcatSQL As String ConcatSQL = Sheets("LogIn").Cells(8, 3).Value QueryA = "select * from database.table WHERE Name = " & ConcatSQL & " cmdSQ

由于某些原因,它返回运行时错误3021,在Terada SQLAssistant中尝试时,SQL字符串工作正常

有人能告诉我我做错了什么吗

单元格中的值等于John Doe

Dim ConcatSQL As String

ConcatSQL = Sheets("LogIn").Cells(8, 3).Value



QueryA = "select *  from database.table WHERE Name = " & ConcatSQL & "   

 cmdSQLData.CommandText = QueryA
cmdSQLData.CommandType = adCmdText
cmdSQLData.CommandTimeout = 0
MsgBox (QueryA)

Set rs = cmdSQLData.Execute()
Row = 1
rs.MoveFirst ' it's falling here 
 Do While (rs.EOF = False And rs.BOF = False)

该错误的一个可能原因是字段
Name
在Teradata中是保留字,因此应该使用
“Name”
(使用双引号)

你能试试这个吗

On Error Resume Next
Set rs = cmdSQLData.Execute()
If Err.Number<>0 Then
  MsgBox(Err.Description)
End If
出错时继续下一步
设置rs=cmdSQLData.Execute()
如果错误号为0,则
MsgBox(错误描述)
如果结束

然后发布输出?您还可以发布QueryA的输出。

尝试从database.table WHERE Name=“&ConcatSQL(删除最后一个
&
)与之前相同的问题运行时错误3021 BOF或EOF为真,或者当前记录已被删除。QueryA=“从database.table WHERE中选择*”&chr(34)&Name&chr(34)&='“&ConcatSQL&'”-假设您的列名实际上是name。否则:QueryA=“select*from database.table WHERE column_name='”&ConcatSQL&“'”Teradata使用双引号而不是方括号。@DavidCram您是对的
On Error Resume Next
Set rs = cmdSQLData.Execute()
If Err.Number<>0 Then
  MsgBox(Err.Description)
End If