VB6(32 位 - 1998)错误 3061 - WINDOWS 7 - 访问 2007 - EXCEL 2007
我编写了一个 VB6 程序,它从 ACCESS 2007 数据库中提取记录并将它们写入 EXCEL 2007 工作表。
该程序运行良好,我使用了几个月的 exe。然后,混乱发生了。我安装为“C”的一个新的 1GB HD 自杀并出现了永久性错误。我的二级 2 GB“D”也同时出现了永久性错误。再见系统。
我能够恢复一切。放入新的硬盘驱动器(提供保修)。重新安装了 W7、ACCESS 2007、EXCEL 2007 和 VB6,全部来自 CD。
现在,当我运行我的 VB exe 时,给了我运行时错误 3061 - 参数太少 - 预计至少有 1 个。
罪魁祸首是选择:
Set rs = db.OpenRecordset(Select_str)
选择包含:
SELECT
HORA,
ARL,
ARL_ECON,
ESTADO_OPE,
EST_REMUN,
ENERGIA,
POT_DISP,
POT_RECORTADA,
PIND,
PINDFORZ,
CGN,
CGO,
CFO,
CCM,
PRECIO_NODO,
PR_REM_ENERGIA,
SCTD,
SCO,
COSTO_406,
COMPRA_SPOT,
POT_DISP_RESERVA,
POT_DISP_GAS,
GAS_NOMINADO,
REM_ADICIONAL,
REM_ADIC_TOTAL,
DESP_ECON,
PGENE_COMP_446,
REM_ADIC_COMP_446,
REM_GAS_6866,
REMUN_ADIC_6866,
POT_DISP_ACD
FROM VALORES_GENERADORES
WHERE GRUPO = "XXXXXX"
我以这种方式构建选择:
BeguinSelectString$ = "SELECT HORA, "
DE$ = " FROM "
Donde$ = " WHERE GRUPO = " + Chr(34)
FinDelSelect$ = Chr(34) + " "
Select_str = ""
' 我使用 for/next 构建此 SELECT 以列出所有字段并将它们放在 SELECT 中。
Select_str = BeguinSelectString$
For i = 0 To (Max_Index_de_Records_1 - 1)
Select_str = Select_str + Nombres_de_Campos_1(i) + ", "
Next i
Select_str = Select_str + Nombres_de_Campos_1(Max_Index_de_Records_1) ' I INSERT THE LAST FIELD WITHOUT THE COMMA, ELSE IT GIVES AN ERROR
Select_str = Select_str + _
DE$ + _
Tabla + _
Donde$ + _
sNombre_del_Grupo + _
FinDelSelect$
项目参考按以下顺序排列:
- 应用程序的 Visual Basic
- Visual Basic 运行时对象和过程
- Visual Basic 对象和过程
- ActiveBar 控件
- ActiveEx 类型库
- Microsoft DAO 3.6 对象库
- Microsoft Excel 12.0 对象库
- Microsoft Access 12.0 对象库
- Microsoft Office 12.0 对象库