gpt4 book ai didi

excel - VBA 过程仅返回特定日期之前的结果

转载 作者:行者123 更新时间:2023-11-30 23:50:27 35 4
gpt4 key购买 nike

大家。我有一个程序每天从一个大表中提取某些数据,然后将这些数据粘贴到一个 excel 文件中。源表包含大约 200 万条记录(从 2015 年 10 月 1 日到 2016 年 9 月 9 日),并以每月 22 万条记录的速度增长。以下程序成功提取了我需要的数据,直到 2016 年 6 月中旬。从那时起,它无法提取任何数据。运行常规查询确实显示数据在那里。打开表格也显示相同的结果——数据截至 09.09.2016)。我认为代码还有其他问题,但它在另一张表上确实可以正常工作。它也适用于这个,但想不出为什么它找不到 2016 年 6 月中旬以后的记录的原因。我索引了日期字段,这是我提取记录的参数,但这没有帮助。非常感谢任何帮助和建议。谢谢你的时间。这是我的代码:

Dim xl As Excel.Application
Dim wb As Excel.Workbook
Dim xs As Excel.Worksheet
Dim rng As Excel.Range
Dim c_range As Excel.Range


Dim dbs As DAO.Database
Dim qdf As DAO.QueryDef
Dim rst As DAO.Recordset
Dim strsql As String

strsql = "SELECT tblTraderExecutions.exec_id, tblTraderExecutions.exec_date, tblTraderExecutions.exec_time, tblTraderExecutions.empty, tblTraderExecutions.exec_string, tblTraderExecutions.internal_order_id, tblTraderExecutions.trading_account, " & _
"tblTraderExecutions.trading_account, tblTraderExecutions.operation_bg, tblTraderExecutions.empty, tblTraderExecutions.empty, tblTraderExecutions.symbol, tblTraderExecutions.symbol, tblTraderExecutions.price, tblTraderExecutions.quantity, " & _
"tblTraderExecutions.currency, ROUND(tblTraderExecutions.total_comm,2), tblTraderExecutions.empty, Round((tblTraderExecutions.quantity * tblTraderExecutions.price),2), Round((tblTraderExecutions.quantity * tblTraderExecutions.price),2), " & _
"tblTraderExecutions.trade_broker, tblTraderExecutions.contra, tblTraderExecutions.accept_broker FROM tblTraderExecutions " & _
"WHERE [exec_date] = [start_date] ORDER BY [tblTraderExecutions].[exec_id]"
Set dbs = CurrentDb
Set qdf = dbs.CreateQueryDef(vbNullString, strsql)
qdf.Parameters("start_date").Value = Forms!frmPropReports!txtDate
Set rst = qdf.OpenRecordset

Set xl = New Excel.Application
xl.Visible = True
Set wb = xl.Workbooks.Open("D:\mpuls\trader_executions_export.xlsx")
Set ws = wb.Worksheets("DNEVNICI")
Set rng = ws.Range("a8")
rng.CopyFromRecordset rst

Set c_range = ws.Range("c8:c65000")
c_range.NumberFormat = "h:mm:ss;@"

rst.Close
qdf.Close
Set qdf = Nothing

Set rst = Nothing
Set dbs = Nothing

最佳答案

首先,我要感谢所有做出贡献的人。我的数据库是在 Access 2016 上创建的,我在另一台装有 Access 2013 的电脑上运行它。这是它只返回特定日期的记录的地方。将其移至装有 Access 2016 的电脑后,它按预期工作,但仅在后台运行 excel,并在导出文件中包含所有适用记录。那时,我将 xl.Visible = true 行移到 xl.workbooks.open 行下方。这就像一个魅力。

关于excel - VBA 过程仅返回特定日期之前的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39985872/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com