2013-08-04 87 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

相关问题