VB6(32位 - 1998年)ERROR 3061 - WINDOWS 7 - ACCESS 2007 - EXCEL 2007运行时错误 “3061”:参数太少,预计1
我写的提取从Access 2007年记录的VB6程序数据库并将它们写入EXCEL 2007工作表。
该程序工作正常,我用了几个月的exe。然后,混乱发生。 安装为“C”的新1GB HD自杀并发生了永久性错误。 我的中学2 GB“D”也制定了一个同时发生的永久性错误。 再见系统。
我能够恢复一切。放入新的硬盘驱动器(保修提供)。从CD中重新安装W7,ACCESS 2007,EXCEL 2007和VB6。
现在,当我运行我的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 /下一步列出所有的字段并将它们放入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对象库