【问题标题】:Vba rs.execute (Parameter Query)vbars.execute(参数查询)
【发布时间】:2017-02-05 17:09:56
【问题描述】:

拜托,你能告诉我使用 vba 执行 SQL 查询的语句是什么吗? (带参数) 我正在尝试这样做:

  • 首先准备一个sub来调用函数Arir_Recordset:

    Public Sub Retriev_rs()

    Dim Query As String
    Query = "SELECT * FROM  '" & Table & "'  WHERE DNI = '" & DNI & "'  "
    Dim rs2 As ADODB.Recordset
    Set rs2 = New ADODB.Recordset
    
    
    Open_Connection---- Works well!
    
    Set rs2 = Abrir_Recordset(Query, "PRODUCTOS_CLIENTESBCO", "00000098687")
    
    
    End Sub
    

  • 功能:

    公共函数 Abrir_Recordset(Query As String, Table As String, DNI As String) As ADODB.Recordset

    Dim comm As ADODB.Command
    
    Dim rs As ADODB.Recordset
    
    Set rs = New ADODB.Recordset
    rs.CursorType = adOpenStatic
    rs.LockType = adLockOptimistic
    
    Set rs = conn.Execute(QUERY)
    
    Set Abrir_Recordset = rs
    
    
    End Function
    

  • 问题:

它无法识别查询。它说:

"附近的语法不正确

正在阅读:

 - "SELECT * FROM  ''  WHERE DNI = ''  "

当然……Query 写得不好。你能帮帮我吗??

非常感谢!!!

【问题讨论】:

  • 您需要分配或作为参数传入 TableDNI 变量。
  • 谢谢!它现在正在工作: : Query = "Select * from " & Tabla & " where DNI = '" & DNI & "'"

标签: sql vba recordset


【解决方案1】:

完成...向此函数传递参数效果很好:

Public Function Abrir_Recordset(Tabla As String, DNI As String) As ADODB.Recordset

Dim comm As ADODB.Command

Dim rs As ADODB.Recordset

Set rs = New ADODB.Recordset
rs.CursorType = adOpenStatic
rs.LockType = adLockOptimistic

Query = "Select * from  " & Tabla & "  where DNI = '" & DNI & "'"

Abrir_Conexion


Set rs = conn.Execute(Query)

Set Abrir_Recordset = rs


End Function

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-31
    • 2018-03-17
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多