[英]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.