繁体   English   中英

VBA SQL 查询保存为字符串并加载为使用另一个查询登录回数据库

[英]VBA SQL query saved as a string and loaded as logging back to the database with another query

query_executed = "SELECT p.FBN, p.Car_Number, p.Car_Title, p.Car_Type, p.Owner car_owner, p.open_closed as Car_Status, p.Car_Status as Status, p.Car_Date_Approved, p.date_submitted_for_approval, p.Expires_After as ""Car Expire"", " & _
                   "p.Site, p.Car_Lines, p.Capex, p.PO_Committed, p.PO_Invoiced, p.Cluster " & _
                   "FROM cobrarawdata.mcl_carline p " & _
                   "WHERE " & UserDefinedFilters & _
                   "AND (p.Capex > 0 OR p.PO_Committed > 0); "

我有那个 SQL 查询,它是用于报告的 excel vba 的一部分。

我有一个请求,要求我们记录正在执行的所有查询。 所以我正在尝试以下操作:

#If Mac Then
    Sql = "INSERT INTO cobrarawdata.sssr_access_logging (username, event_datetime, event_type, query_executed) VALUES('" & LCase(Environ("USER")) & "','" & Format(Now(), "MM/dd/yyyy HH:mm:ss") & "','CAR Balance Query','" & query_executed & "')"
    ExecuteSql (Sql)
#Else
    Sql = "INSERT INTO cobrarawdata.sssr_access_logging (username, event_datetime, event_type, query_executed) VALUES('" & LCase(Environ("Username")) & "','" & Format(Now(), "MM/dd/yyyy HH:mm:ss") & "','CAR Balance Query','" & query_executed & "')"
    ExecuteSql (Sql)
#End If

但是,当我尝试在插入查询中使用 query_executed 时,我收到一个错误,但我无法使用双引号进行任何数量的调整来更改它。

我找到了一个潜在的解决方法。 在查询中,过滤器都通过字符串中的 ' 来完成。 删除那些允许连接,但它并不完全代表查询。 应该够好了。

Sql = "INSERT INTO cobrarawdata.sssr_access_logging (username, event_datetime, event_type, query_executed) VALUES('" & LCase(Environ("Username")) & "','" & Format(Now(), "MM/dd/yyyy HH:mm:ss") & "','CAR Balance Query','" & Replace(query_executed, "'", "") & "')"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM