一对多数据库

时间:2015-10-20 16:57:59

标签: database ms-access access-vba boolean one-to-many

我尝试创建一个表单,为每节课分配不同课堂的座位。 我创建了一个包含两个表的访问数据库: 表1:课程,日,小时,该教室的座位数。 然后我创建了第二个表(Tabel2)与第一个表的一对多关系:对于每一课,它将是正确的座位数(每个数字代表一个座位)和一个布尔值(如果座位是空的,则为true,否则为false) )。我已经将数据库连接到Visual Studio中的项目。 使用ADD按钮(然后保存),我可以使用文本框中的值分配课程的参数。代码如下:

Private Sub Add_button_Click(sender As Object, e As EventArgs) Handles Add_button.Click
    Tabel1BindingSource.AddNew()
End Sub

Private Sub Save_Click(sender As Object, e As EventArgs) Handles Save.Click
    Try
        Tabel1BindingSource.EndEdit()
        Tabel1TableAdapter.Update(Me.DBDataSet.Tabel1)
        MessageBox.Show("ok.")
    Catch ex As Exception
        MessageBox.Show("Error.")
    End Try
End Sub

代码正常运行。 在我想创建一个教室架构之后,如果座位被占用,我会检查每个座位的复选框。 我的问题是:如何在tabel2上写下座位数(根据文本框中的值从1到N)和所有座位的checkstate = 0(这意味着所有座位在开头都是免费的)?

1 个答案:

答案 0 :(得分:0)

在为Table1添加记录的现有子例程中,按如下所示进行修改:

Sub Save_Table1()
Dim i As Integer
Dim iSeats as Integer
Dim iID    as Integer   ' Or if a string, dim as a string and name as sID

' Before you insert to Table1 add the following two lines:
iSeats = <your control that contains seat count
iID = <your control that contains the unique key of the record you are adding>

' This is where your existing code to 'Insert or 'Save to Table1 is located

' Add the following to add n Records
For i = 1 to iSeats
    'Add VS code to insert record into Table2 using i as the SeatNbr and iID as the ID key.

Next i

完成上述操作后,您可以创建用于座位分配的表单。