【问题标题】:Passing string result to query then export as csv将字符串结果传递给查询然后导出为 csv
【发布时间】:2017-06-17 11:58:37
【问题描述】:

下午好, 我有一个访问查询,其中包含我的所有客户的列表,可以调用该 CUS 我有另一个包含 ORDERS 列表的查询

我想编写一些 VBS 循环遍历客户列表并导出包含属于该客户的所有订单的 csv 文件。

vba 然后会移动到列表中的下一个客户并执行相同的操作。

任何帮助都会很棒。

下面的代码片段

几乎无法让 WHERE 条件正常工作,它一直显示一个弹出窗口供我填充,但是相同的字符串正在输入 msgbox

strcustcode = rs!OCUSTCODE 
ordercount = rs!orders 
TIMEFILE = Format$(Time, "HHMM") 
MsgBox ([strcustcode] & " has " & [ordercount] & " orders") 
StrSQL = "Select * From [24-ND_Cus] where [24-ND_Cus].[OCUSTCODE] = strcustcode " 
Set qd = db.CreateQueryDef("tmpExport", StrSQL) 
DoCmd.TransferText acExportDelim, , "tmpExport", "c:file.csv" db.QueryDefs.Delete "tmpExport" –

【问题讨论】:

  • 嗨,Leon 欢迎来到 Stack...
  • 您可以添加您尝试过的内容吗.. 会很棒。
  • 几乎无法让 WHERE 条件正常工作,它一直显示一个弹出窗口供我填充,但是相同的字符串正在输入 msgbox,这是一个 sn-p,它位于循环 strcustcode = rs! OCUSTCODE ordercount = rs!orders TIMEFILE = Format$(Time, "HHMM") MsgBox ([strcustcode] & " has " & [ordercount] & " orders") StrSQL = "Select * From [24-ND_Cus] where [24- ND_Cus].[OCUSTCODE] = strcustcode " Set qd = db.CreateQueryDef("tmpExport", StrSQL) DoCmd.TransferText acExportDelim, , "tmpExport", "c:file.csv" db.QueryDefs.Delete "tmpExport"
  • 请“编辑”问题(链接就在问题下方的标签下方)并将您的代码插入问题本身 - 在 cmets 中读取代码几乎是不可能的,问题需要是“独立的”。

标签: string vba ms-access export criteria


【解决方案1】:

不要在 VBA 变量周围使用 [ ]。当您只想给用户一条消息时,不要对 MsgBox 使用括号。括号使它成为一个需要用户响应来设置变量的函数。

MsgBox strcustcode & " has " & ordercount & " orders"

将变量连接到 SQL 语句中。如果 OCUSTCODE 是文本类型字段,请为参数使用撇号分隔符。

StrSQL = "Select * From [24-ND_Cus] Where [OCUSTCODE] = '" & strcustcode & "'"

我不建议经常修改设计和更改查询 SQL 语句的代码正在改变设计。如果唯一的变化是过滤条件并且动态参数化查询不起作用,我建议使用“临时”表 - 表是永久的,数据是临时的。删除和写入记录到表并导出表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-25
    • 2021-04-05
    相关资源
    最近更新 更多