Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

至少一个参数没有被指定值,请指教,拜托!

WHKUM  发表于:2008-01-13 12:49:16  
复制

Public Sub 生成全系列明细科目分类帐()
    '本程序在Public Sub 执行参数命令表传回记录()的基础上略加修改
    '成为分类帐全自动生成器它的语法与模块1的程序代码略有不同,但更其效率
    '更聪明,只要用户输入帐号,它会自动寻找相对应的会计科目
    '程序代码已能侦测贷方余额,不会以负号表之
Dim cmd1 As Command, varBalance As Double
Dim rs1 As Recordset, str1 As String
Dim fldLoop As ADODB.Field, rs2 As Recordset
Dim prm1 As ADODB.Parameter, int1 As String
Dim int2 As String, int3 As String
        '下面sql可生成你指定帐号的分类帐
        '例如你输入1001现金帐号可生成现金分类帐
        '定义并生成指对象command.
    Set cmd1 = New ADODB.Command
    With cmd1
        .ActiveConnection = CurrentProject.Connection
        .CommandText = "Parameters [明细帐号] Text(50);" & _
            "SELECT 明细表.自动编号,明细表.操作号,明细表.日期, 明细表.明细科目, 明细表.提单号, 明细表.箱量, 明细表.海运费USD, 明细表.汇率," & _
            "明细表.海运费RMB, 明细表.付款USD, 明细表.付款汇率, 明细表.付款RMB, " & _
            "明细表.发票USD, 明细表.发票汇率, 明细表.发票RMB, " & _
            "明细表.报关费, 明细表.单证费, 明细表.THC, 明细表.CFS, 明细表.港杂费, " & _
            "明细表.装拆费, 明细表.理货费, 明细表.拖车费, 明细表.予录费, 明细表.换单费, " & _
            "明细表.税款, 明细表.结关费, 明细表.三检费, 明细表.安检费, 明细表.网付费,明细表.中海费," & _
            "明细表.分舱单,明细表.加急费,明细表.转关费,明细表.电放费,明细表.改单费,明细表.换证费," & _
            "明细表.场站费,明细表.分拨费,明细表.制冷费,明细表.传输费,明细表.商检费, 明细表.报检代理费, " & _
            "明细表.商检查验费,明细表.报关代理费,明细表.海关查验费,明细表.其他A, 明细表.其他B, 明细表.其他C, 明细表.合计, 明细表.付款金额, 明细表.发票金额, " & _
            "明细表.海运费USD余额, 明细表.海运费RMB余额, 明细表.发票USD余额, 明细表.发票RMB余额, 明细表.未付款余额, 明细表.发票余额 INTO xx分类帐 FROM 明细表 " & _
            "WHERE (((明细表.明细帐号) = [明细帐号]))" & _
            "ORDER BY 明细表.日期"
        .CommandType = adCmdText
    End With
        '定义并生成参数对象 parameter.
 
    Set prm1 = cmd1.CreateParameter("[明细帐号]", _
        adInteger, adParamInput)
                '使用参数集合对象的APPEND方法新建参数
    cmd1.Parameters.Append prm1
               
                'Trim()函数可消除前后空白
    'inT1 = Trim(InputBox("明细帐号?", "KS设计"))
           
            '设定对象引用及并指定目前的连结
    Set rs2 = New ADODB.Recordset
    rs2.ActiveConnection = CurrentProject.Connection
    rs2.Open "明细科目试算表", , adOpenKeyset, adLockOptimistic, adCmdTable
Do Until rs2.EOF
int1 = rs2("明细帐号")
    prm1.Value = int1
    MsgBox "你输入的是 " & int1 & " 而prm1.Value=" & prm1.Value
            '打开命令cmd1对象的记录集
    Set rs1 = cmd1.Execute(100, , adCmdText)   'adcmdtable

运行到这里 就提示: 运行时错误‘-2147217904(80040e10)':至少一个参数没有被指定值

 之前我在表里加了个字段 “分拨费” 跟这个有关系吗 请指教!拜托

 

 

 

 

Top
WHKUM 发表于:2008-01-13 12:50:47

接下来的是 下面 的设置:

 

 

            '上面命令的sql生成的表先预设为「xx分类帐」
    rs1.Open "xx分类帐", , adOpenDynamic, adLockOptimistic
   
   varBalance = 0
        '使用Do Loop循环在表记录集合中逐笔往下计算本日余额
   Do Until rs1.EOF
        'rs1.CancelUpdate
        rs1("海运费USD余额") = rs1!海运费USD - rs1!付款USD + varBalance
        rs1("海运费RMB余额") = rs1!海运费RMB - rs1!付款RMB + varBalance
        rs1("发票USD余额") = rs1!海运费USD - rs1!发票USD + varBalance
        rs1("发票RMB余额") = rs1!海运费RMB - rs1!发票RMB + varBalance
        rs1("未付款余额") = rs1!合计 - rs1!付款金额 + varBalance
        rs1("发票余额") = rs1!合计 - rs1!发票金额 + varBalance
        rs1.Update
        varBalance = rs1!海运费USD余额
        varBalance = rs1!海运费RMB余额
        varBalance = rs1!发票USD余额
        varBalance = rs1!发票RMB余额
        varBalance = rs1!未付款余额
        varBalance = rs1!发票余额
        rs1.MoveNext
  Loop
   

   
    'MsgBox "余额栏已替你补好了,你不必自己计算^o^"
       rs1.Close
        '以下引用ADOX
   Set rs1 = Nothing
    '宣告对象链接库以更改表的名称
   Dim cat1 As New ADOX.Catalog, tab1 As ADOX.Table
   cat1.ActiveConnection = CurrentProject.Connection
            'inT1是上面用户输入的帐号字符串inT2是DLookup函数的条件
   int2 = "[明细帐号] = " & int1
   int3 = DLookup("[明细科目]", "明细科目一览表", int2)
   Set tab1 = cat1.Tables("xx分类帐")
        'inT3设定给tabl以取代xx分类帐
   tab1.Name = int3 & "分类帐"
rs2.MoveNext
Loop
   '使用Docmd对象的方法打开新表供你欣赏
   'DoCmd.SelectObject acTable, inT3 & "分类帐", True
   'DoCmd.OpenTable inT3 & "分类帐", acViewNormal, acReadOnly
   'DoCmd.GoToControl "余额"


 End Sub



钱玉炜 发表于:2008-01-13 22:04:19
请注明是哪一条语句出错

总记录:2篇  页次:1/1 9 1 :