簡體   English   中英

向表訪問添加新的列和行

[英]adding a new column and rows to a table access

我在Access中有一個表,如下所示:

+----------+----------+-----------+
|  AGP_ID  | PRAD_ID  | PRAD_TYPE |
+----------+----------+-----------+
| 00803110 | 00803110 | 002       |
| 00803110 | 00803110 | PRI       |
| 00803153 | 00803153 | 002       |
| 00803153 | 00803153 | 003       |
| 00803153 | 00803153 | PRI       |
+----------+----------+-----------+

我想為每個AGP ID添加一個列Days並在該列中添加一個M,T,W,TH,F,Sat,Sun,每個AGP ID。 新表將如下所示:

+----------+----------+-----------+-----+
|  AGP_ID  | PRAD_ID  | PRAD_TYPE | Day |
+----------+----------+-----------+-----+
| 00803110 | 00803110 | 002       | M   |
| 00803110 | 00803110 | PRI       | T   |
| 00803110 |          |           | W   |
| 00803110 |          |           | TH  |
| 00803110 |          |           | F   |
| 00803110 |          |           | Sat |
| 00803110 |          |           | Sun |
| 00803153 | 00803153 | 002       | M   |
| 00803153 | 00803153 | 003       | T   |
| 00803153 | 00803153 | PRI       | W   |
| 00803153 |          |           | TH  |
| 00803153 |          |           | F   |
| 00803153 |          |           | Sat |
| 00803153 |          |           | Sun |
+----------+----------+-----------+-----+

任何幫助將不勝感激。 我一直在努力,但與我所做的其他事情相比,它似乎是如此簡單。

謝謝。

不確定是否遍歷每個記錄是否是個好主意。 您要求的..嘗試一下;)

將此代碼置於按鈕下,單擊子。

在設計方式下打開表,並以文本(2個字符)的形式插入新的“天”列,以修改select / update sql命令。

    Dim myDB As DAO.Database
    Dim myRs As DAO.Recordset

    Set myDB = CurrentDb

    Dim SQL_GET As String
    SQL_GET = "SELECT ID from YOUR_TAbLE"

    Set myRs = myDB.OpenRecordset(SQL_GET)

    Dim mRc As Long
    mRc = Nz(myRs.RecordCount, 0)
    If Not mRc = 0 Then
        Dim dArr(6) As String
        dArr(0) = "MO"
        dArr(1) = "TU"
        dArr(2) = "WE"
        dArr(3) = "TH"
        dArr(4) = "FR"
        dArr(5) = "SA"
        dArr(6) = "SU"

        Dim SQL_SET As String
        Dim I As Integer
        I = 0
        While Not myRs.EOF
            SQL_SET = "UPDATE Your_table SET Day='" & dArr(I) & "' WHERE (ID = " & Nz(myRs("id"), "") & ")"
            On Error GoTo ERROR_SQL1:
            DBEngine.BeginTrans
                myDB.Execute SQL_SET, dbFailOnError
            DBEngine.CommitTrans

            myRs.MoveNext
            If I < 6 Then I = I + 1 Else I = 0
        Wend
    Else
        msgbox "No records found.. :("    
    End If



EXIT_SUB:
    On Error Resume Next
    Set myDB = Nothing
    Exit Sub
ERROR_SQL1:
    DBEngine.Rollback
    MsgBox "Error while executing sql_1. " & vbNewLine & "System msg: " & Err.description
    GoTo EXIT_SUB

PS:您可以刪除不需要的beginTrans / commitTrans。 我把它作示范。 我也沒有測試此代碼,但應該工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM