2013-08-04 170 views
1

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$ 

項目引用是以這種順序:

  1. Visual Basic應用程序
  2. Visual Basic運行時對象和過程
  3. 的Visual Basic對象和過程
  4. ActiveBar控制
  5. ActiveEx類型庫
  6. Microsoft DAO 3.6對象庫
  7. 的Microsoft Excel 12.0對象庫
  8. 的Microsoft Access 12.0對象庫
  9. 的Microsoft Office 12.0對象庫

回答

1

如果你一定在你的問題中SELECT語句是準確聲明由您的代碼構建,複製該文本,在Access查詢設計器中創建一個新查詢,切換到SQL視圖,粘貼複製的文本並嘗試運行它。

訪問將顯示一個參數輸入框,要求您爲該參數提供一個值。請注意,該框中包含任何Access認爲是參數的「名稱」。該參數名稱是(通常拼寫錯誤的字段名稱)訪問在VALORES_GENERADORES表中找不到。由於它找不到名稱,因此它假定名稱必須是參數。

1

謝謝你,HANSUP,你的建議解決了問題!

這是一組由第三方提供給我的日常數據庫。數據庫結構和表格字段在過去幾年中沒有改變。 Furthermome,我的程序工作得很好,每天提取近一年的信息! 然後,與此同時,我的電腦自殺,數據庫設計人員決定在表I QUERY中更改最後一個字段的名稱。 你在一個月的midlle中做了這件奇怪的事情(@#!## !!!)。當我檢查了表格的字段名稱時,我查看了第1天的數據庫表格,該表格仍舊有舊名稱!所以,我認爲我重新安裝所有東西都是罪魁禍首。

現在我更改了字段名稱(它不是拼寫錯誤或語法錯誤),一切又恢復正常。

再次感謝!

Rudy