Access 2013中的VB未返回所需的结果

时间:2015-10-07 14:36:39

标签: vba ms-access

我目前正在将ADP 2010访问数据库迁移到accdb 2013并遇到问题。

数据库的一个功能是用户可以根据日期和员工姓名查询标注。然后,这将导出到word文档声明表单。

我们使用两个记录集来获取此信息,一个rst_callouts(单个标注)和另一个rst_standby(待机日期,即周一至周五)。

单词模板包含一个表格,其中详细说明了以下信息:日期起始至,呼出描述,每日费率,声明天数和总数。

rst_standy毫无问题地输入信息,但是,rst_callouts仅导出费率,天数和总数。它错过了日期和来自和描述。

我已经重写了剧本,它与rst_standy完全相同,但仍然没有打球。我甚至在SQL中运行查询并返回结果,所以我知道ADOB.recordset也在工作。任何帮助都会受到赞赏,因为它驱使我绕弯道。

    ' Get all newly raised Changes using 'rst_callouts'
    ' -------------------------------------------------------------
    rst_callouts.Open "SELECT * FROM [dbo_qry_callout] " & _
                        "WHERE DateOfCallout >= #" & Format(StartDate, "mm/dd/yy#") & _
                             " AND DateOfCallout <= #" & Format(EndDate, "mm/dd/yy#") & _
                             " AND fk_StaffID = " & StaffID & _
                             " ORDER BY DateOfCallout;", con, adOpenKeyset, adLockOptimistic
    If rst_callouts.RecordCount > 0 Then
        rst_callouts.MoveFirst
        rst_callouts.MoveLast
        int_num_callouts = rst_callouts.RecordCount
        rst_callouts.MoveFirst
    End If


    ' This loop calculates all of the callouts to be used in the claim form
    ' ---------------------------------------------------------------------
    For callout_looper = 1 To int_num_callouts
        dummy_value = acbUpdateMeter(((int_num_standbys + callout_looper) / (int_num_standbys + int_num_callouts)) * 100)

        With appWord
            **.Selection.TypeText Text:=Format(rst_callouts!DateOfCallout, "dd/mm/yy")
            .Selection.MoveRight Unit:=wdCell
            .Selection.TypeText Text:=Format(rst_callouts!DateOfCallout, "dd/mm/yy")
            .Selection.MoveRight Unit:=wdCell
            .Selection.TypeText Text:=Format(rst_PriceList![PriceListDescription]) & " - #" & (rst_callouts!pk_CalloutID)**
            .Selection.MoveRight Unit:=wdCell
            .Selection.TypeText Text:=Format(rst_PriceList![DailyRate], "0.00")
            .Selection.MoveRight Unit:=wdCell
            .Selection.TypeText Text:="1"
            .Selection.MoveRight Unit:=wdCell
            .Selection.TypeText Text:=Format(rst_PriceList![TotalRate], "0.00")
            .Selection.InsertRowsBelow 1
            .Selection.MoveLeft Unit:=wdCell
        End With

        ClaimTotal = ClaimTotal + rst_PriceList![TotalRate]
        rst_callouts.MoveNext
    Next callout_looper

    With appWord
        .Selection.MoveRight Unit:=wdCell, Count:=5
        .Selection.MoveDown
        .Selection.TypeText Text:=Format(ClaimTotal, "0.00")
        .Selection.MoveUp Unit:=wdLine, Count:=1
        .Selection.Cells.Delete ShiftCells:=wdDeleteCellsEntireRow
    End With

1 个答案:

答案 0 :(得分:0)

感谢斯科特的帮助,我非常感谢并让我走上正轨。我通过删除DAO引用并使ADO成为优先事项来解决这个问题。然后我不得不删除我的ODBC并删除所有SQL表。我重新创建了ODBC并重新导入了所有链接表,现在它正在工作。该死的这是让我陷入困境的一个问题,再次非常感谢帮助解决这个问题。