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對象庫