Sql 如何将记录自动生成到表中
我会尽我所能保持这个简洁 我的表和关系如下所示 [关系][1] 我想要达到的是这个。 每月添加一个新的testID。每个学生在每个测试中都做每个练习,这记录在结果表中。当添加新测试时,我希望在结果表中自动添加新记录,以便每个学生的每个练习都有一个新记录 假设我有10个学生和8个练习,我添加了一个新的TestID 2016-12。我希望使用testID 2016-12在结果表中创建80个新记录,每个练习学生组合一个记录 我曾想过尝试使用一个追加查询来实现这一点,但没有成功 我知道如何使用VBA插入一条记录,所以一直在想我需要设置一个循环,但不知道如何通过studentID和ExerciseID循环 有没有办法创建一个查询,生成每个学生练习组合,然后使用该组合将特定的testID附加到表中Sql 如何将记录自动生成到表中,sql,ms-access,vba,Sql,Ms Access,Vba,我会尽我所能保持这个简洁 我的表和关系如下所示 [关系][1] 我想要达到的是这个。 每月添加一个新的testID。每个学生在每个测试中都做每个练习,这记录在结果表中。当添加新测试时,我希望在结果表中自动添加新记录,以便每个学生的每个练习都有一个新记录 假设我有10个学生和8个练习,我添加了一个新的TestID 2016-12。我希望使用testID 2016-12在结果表中创建80个新记录,每个练习学生组合一个记录 我曾想过尝试使用一个追加查询来实现这一点,但没有成功 我知道如何使用VBA插入
很抱歉,这里有点乱。感谢您的打开两个包含学生和练习的记录集,并在向第三个或第四个记录集添加记录时循环这些记录 您可以使用此示例作为起点-至少您会了解:
Public Sub AddRecords()
Dim dbs As DAO.Database
Dim rss As DAO.Recordset
Dim rst As DAO.Recordset
Dim fld As DAO.Field
Dim intCount As Integer
Dim lngRevenue As Long
Dim datDate As Date
Dim booNext As Boolean
Set dbs = CurrentDb
Set rss = dbs.OpenRecordset("Select * From tblSales Order By [Purchase Week]")
Set rst = dbs.OpenRecordset("Select * From tblSalesWeek")
If rss.RecordCount > 0 Then
datDate = rss.Fields("Purchase Week").Value
End If
While rss.EOF = False
rst.AddNew
If DateDiff("d", datDate, rss.Fields("Purchase Week").Value) = 0 Then
intCount = intCount + rss.Fields("Customer Count").Value
lngRevenue = lngRevenue + rss.Fields("Revenue").Value
booNext = True
Else
booNext = False
End If
For Each fld In rss.Fields
Select Case fld.Name
Case "Purchase Week"
rst.Fields(fld.Name).Value = datDate
Case "Customer Count"
rst.Fields(fld.Name).Value = intCount
Case "Revenue"
rst.Fields(fld.Name).Value = lngRevenue
Case Else
rst.Fields(fld.Name).Value = rss.Fields(fld.Name).Value
End Select
Next
rst.Update
If booNext = True Then
rss.MoveNext
End If
datDate = DateAdd("d", 7, datDate)
Wend
rst.Close
rss.Close
Set fld = Nothing
Set rst = Nothing
Set rss = Nothing
Set dbs = Nothing
End Sub
您可以作为追加查询来执行此操作。它看起来像这样:
当您运行此查询时,它将要求您输入TestID,然后针对该TestID为每个学生/练习组合添加一行。您好,谢谢您。这就是我所做的,并设法把它做成一种形式。非常感谢你的回答。我同意斯基皮的建议。我肯定会看一下,因为我也想学习如何使用代码循环记录。非常感谢。