2012-04-09 109 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

相關問題