当前位置: 首页 > 面试题库 >

如何基于字段值将可变数量的记录插入到访问表中

闾丘文昌
2023-03-14
问题内容

我有一个具有以下各列的访问表:WeeklyID(PrimaryKey),CampaignID(Foreignkey),WeekEnded(日期字段),Duration(数字字段)。

我想自动将X记录数添加到表中,其中X是“持续时间”字段中存储的数字。我希望添加的记录具有与原始记录相同的CampaignID。因此,当具有一个特定CampaignID的记录计数等于“持续时间”编号时,将满足自动化过程的要求。

如果有人可以提供有关如何完成此任务的帮助,将不胜感激。如果您需要更多信息,请询问!


问题答案:

这是一种方法。请注意,我计划的场景是有人在添加记录后更改持续时间。

Option Compare Database
Option Explicit

Dim dbs     As DAO.Database
Dim rs      As DAO.recordSet
Dim rsOT    As DAO.recordSet

Function Create_New_Rows()
Dim strSQL          As String
Dim i               As Integer
Dim iAdd            As Integer
Dim iDuration       As Integer
Dim lCampaignID     As Long


    On Error GoTo Error_trap

    Set dbs = CurrentDb

    strSQL = "SELECT Count(Campaign.WeeklyID) AS NbrRecs, First(Campaign.Duration) AS Duration, Campaign.CampaignID " & _
                "FROM Campaign " & _
                "GROUP BY Campaign.CampaignID;"
    Set rs = dbs.OpenRecordset(strSQL)
    Set rsOT = dbs.OpenRecordset("Campaign")
    If rs.EOF Then
        MsgBox "No records found!", vbOKOnly + vbCritical, "No Records"
        GoTo Exit_Code
    Else
        rs.MoveFirst
    End If

    Do While Not rs.EOF
        Debug.Print "Campaign: " & rs!CampaignID & vbTab & "Duration: " & rs!Duration & vbTab & "# Recs: " & rs!NbrRecs
        iDuration = rs!Duration
        lCampaignID = rs!CampaignID


        ' Check if already have correct number of records for this ID
        If iDuration = rs!NbrRecs Then
            ' Do nothing... counts are good
        ElseIf iDuration < rs!NbrRecs Then
            MsgBox "Add code to resolve too many records for Campaign: " & lCampaignID & vbCrLf & _
                "Duration: " & iDuration & vbCrLf & _
                "Records: " & rs!NbrRecs, vbOKOnly + vbCritical, "Too many records already!"
        Else
            ' Finally, Duration is less than existing records... time to add...
            iAdd = iDuration - rs!NbrRecs
            Do
                If iAdd > 0 Then
                    ' Add new record
                    Add_Records lCampaignID
                    iAdd = iAdd - 1
                Else
                    Exit Do
                End If
            Loop
        End If
        rs.MoveNext
    Loop

Exit_Code:
    If Not rs Is Nothing Then
        rs.Close
        Set rs = Nothing
    End If
    If Not rsOT Is Nothing Then
        rsOT.Close
        Set rsOT = Nothing
    End If
    dbs.Close
    Set dbs = Nothing

    MsgBox "Finished"

    Exit Function
Error_trap:
    Debug.Print Err.Number & vbTab & Err.Description & vbCrLf & "In:   Create_New_Rows"
    MsgBox Err.Number & vbTab & Err.Description & vbCrLf & "In: Create_New_Rows"
    Resume Exit_Code
    Resume
End Function

Function Add_Records(lCampID As Long)
    With rsOT
        .AddNew
        !CampaignID = lCampID
        ' Add code if you want to populate other fields...
        .Update
        'Debug.Print "Added rec for CampaingID: " & lCampID
    End With

End Function


 类似资料:
  • 我有一个带有JavaScipt的PDF,所有终端用户都运行Adobe Acrobat Pro DC。我已经成功地找到了如何让它用来自其他表单字段的值填充表单字段: 但我尝试做的基本上是一样的,但我尝试获取一个变量的值,并将其添加到表单字段中。 有什么想法吗?谢谢

  • 问题内容: 存取2003 最终,我需要创建一个用于打印标签“样品ID,x的x的jar”的报告。 我的表上有样品ID和罐数。是否可以创建一个查询,该查询为我提供3个字段:样品ID,广口瓶编号,广口瓶数量-广口瓶编号根据广口瓶数量创建增量记录吗? 该表信息为: 我想避免为每个罐子创建一个表记录。 问题答案: 您可以利用数字表: 样本是当前表的名称。 数字表包含1到整数之间的整数,您可以从罐子中获得的最

  • 问题内容: 我想在Python中将变量引入字符串中。 例如,看下面的脚本。我只是想为图像起个名字,例如…到,或者如果您使用会计师,因为我可以替换部分价值链以生成计数器。 问题答案: data = self.cmd(“r.out.gdal in=rdata out=geo{0}.tif”.format(i)) self.dataOutTIF.setValue(“geo{0}.tif”.format(

  • 问题内容: 我似乎无法使用户输入的数据进入表然后进行打印。 到目前为止,这是我的代码: 我从这里得到了“模板” /开始 解决以下 现在,我想向表中添加两个变量,即原始日志变量和另一个用作时间戳记的变量。 其余代码与上面相同。我认为这会起作用,但是当我测试它时,表中什么也没有。 问题答案: 我认为您只需要更改获取和插入值的方式即可(另外,此行的SQL中存在语法错误): 我认为您可以完全忘记该变量,除

  • 我想访问嵌入形式的过程变量,但我无法这样做。我在https://docs.camunda.org/manual/7.8/reference/embedded-forms/javascript/examples/浏览了留档以及https://github.com/camunda/camunda-bpm-examples/tree/master/usertask/task-form-embedded-

  • 我在我的Web应用程序中配置了log4j2,它将调试/信息消息记录到控制台。我想使用记录器将每个超文本传输协议请求中收到的特定字段写入新文件。我明白添加一个文件附加到现有的文件将写入配置日志记录的所有日志消息,但是我想使用这个新的记录器只写入特定的字段。 我想rollingfile appender会有所帮助,它会为每个请求创建一个新文件,并将收到的一些输入字段保存为该请求的一部分。 非常感谢。