2012-04-09 106 views
0

任何人都可以指出一个Access表单的例子,它可以基于一个表单创建多个记录(在一个表中)?MS-Access 2003:从一个表单创建多个记录

展开:我们正在记录关于给定日期的项目花费时间的信息。我们收到了一个单一表格的请求,该表格允许用户在一个表格中输入给定星期5(或7)天的数据。他/她会从日历控件中选择一个星期,从列表框中选择一个项目,然后为该周花费的时间输入最多7个数字。

我没有检查问题5294128,这似乎不适用,并问题8070706,这似乎暗示,这只能在VBA(不使用GUI)完成。任何替代品?

谢谢。

+0

在极致简约,使用数据表格或连续的表格。您可以考虑使用主/明细配置。 – HK1 2012-04-09 13:14:02

+0

@ HK1,谢谢。我看不出连续的表格是如何工作的,但(显然)我是新手。 Access(2003)帮助不包含“数据表格”的任何条目。 – CarlF 2012-04-09 13:52:01

+0

它可能被称为数据表视图 – HK1 2012-04-09 15:00:14

回答

1

这些线上的东西应该适合。这是一个带有子窗体的未绑定窗体。

Form

您可以从表单向导

enter image description here

要正常工作,获取表单类型,你将需要一些代码,说:

Private Sub cmdGo_Click() 
Dim rs As DAO.Recordset 
Dim sSQL As String 
Dim sSDate As String 
Dim sEDate As String 

    sSDate = "#" & Format(Me.txtStartDate, "yyyy/mm/dd") & "#" 
    sEDate = "#" & Format(Me.txtStartDate + Me.txtNoDays, "yyyy/mm/dd") & "#" 

    sSQL = "SELECT * FROM MyTable WHERE DataDate Between " & sSDate _ 
     & " AND " & sEDate 

    Set rs = CurrentDb.OpenRecordset(sSQL) 

    If rs.RecordCount < Me.txtNoDays Then 
     AddRecords sSDate, sEDate 
    End If 

    Me.DataSubform.Form.RecordSource = sSQL 
End Sub 



Sub AddRecords(sSDate, sEDate) 
''Uses counter table with integers from 0 to 
''highest required number 
''Another useful table is a calendat table, which would 
''save some work here. 

    sSQL = "INSERT INTO MyTable (DataDate) " _ 
     & "SELECT AddDate FROM " _ 
     & "(SELECT " & sSDate _ 
     & " + [counter.ID] AS AddDate " _ 
     & "FROM [Counter] " _ 
     & "WHERE " & sSDate _ 
     & "+ [counter.ID] Between " & sSDate _ 
     & " And " & sEDate & ") a " _ 
     & "WHERE AddDate NOT In (SELECT DataDate FROM MyTable)" 

    CurrentDb.Execute sSQL, dbFailOnError 
End Sub 
+0

当我解释主程序时,AddRecords子例程实际上将表单的内容保存到DB(“INSERT INTO”查询)中。我感到困惑的是,用户输入的任何东西如何连接到表单上的字段。我在主程序中看到了“Me.DataSubform.Form.RecordSource = sSQL”,但AddRecords中没有任何内容引用SubForm来找出哪些数据可以保存回表中,从而使我大失所望。那么AddRecords从哪里获取它所插入的数据呢?并感谢您的帮助。 – CarlF 2012-04-09 19:55:43

+0

AddRecords在MyTable中为用户通过输入开始日期和一段时间选择的日期创建记录。如果记录不可用,AddRecords将创建缺少的记录,然后所选记录显示在子窗体中。 – Fionnuala 2012-04-09 20:00:49

+0

Ooooh。它将它们显示在子窗体中,然后用户可以编辑它们?这实际上并不适合我的数据模型,但这是因为我没有很好地解释它。再次,谢谢。 – CarlF 2012-04-09 20:19:00

相关问题