[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 607
  • Last Modified:

Move specific record to another table Access 2003

I like to move a complete specific selected record in a form to table for archiving.

original table is called tbl_hw and archiving table is called tbl_hw_archive.
Both tbl_hw and tbl_hw_archive have the same filds.

How can I select on record and add this record including all filds to the other table and after this is done delete this record in the original table.

Best regards.
0
jesaja
Asked:
jesaja
  • 3
  • 2
2 Solutions
 
Arthur_WoodCommented:
the SQL would look like this:

INSERT INTO tbl_hw_archive Select * from tbl_hw where tbl_hw.<PrimaryKeyField> = SomeValue


Not knowing what the fields are in your tables, you would replace .<PrimaryKeyField> with the name of the field in the table that is the PrimaryKey of that table, and replace SomeValue with the Primary_Key_Value of the record that you wish to copy to the archive table.

AW
0
 
GRayLCommented:
You cannot INSERT and DELETE from the same SQL.  Once you are satisfied that the record has indeed been inserted in the archive table, run a DELETE query on the original:

DELETE * from tbl_hw WHERE tbl_hw.pk = SomeValue
0
 
GRayLCommented:
Reading it again, do you expect to perform this action by opening the table directly, or are you doing it from a form?
0
Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

 
jesajaAuthor Commented:
Both thanks for your advice forgot about using SQL in a form.

I did this:


Me.Painting = False
    DoCmd.Hourglass True
    DoCmd.SetWarnings False
    
    If (MsgBox("Wollen Sie den aktuellen Datensatz: " & Chr(34) _
            & Me![Temp_ID_Hardware] & " - " & Me![Temp_Model_Name] & Chr(34) & _
        " archivieren?", vbExclamation + vbYesNo + vbDefaultButton2) = 6) Then
       
        DoCmd.RunSQL "INSERT INTO tbl_hw_archive Select * from tbl_hw where tbl_hw.ID_Hardware = " & Me![Temp_ID_Hardware] & ""
        
        If (MsgBox("ACHTUNG!" & Chr(10) & "Wollen Sie den aktuellen Datensatz: " & Chr(34) _
            & Me![Temp_ID_Hardware] & " - " & Me![Temp_Model_Name] & Chr(34) & _
        " löschen?", vbCritical + vbYesNo + vbDefaultButton2) = 6) Then
            
         DoCmd.RunSQL "DELETE * from tbl_hw WHERE tbl_hw.ID_Hardware = " & Me![Temp_ID_Hardware] & ""
        
        End If
    
    End If
               
    DoCmd.Hourglass False
    Me.Painting = True
    DoCmd.SetWarnings True
    
    If Err = 0 Then
        MsgBox ("Der Datensatz wurde ordnungsgemäss archiviert und von der Haupttabelle gelöscht!"), vbInformation, AppName
        Me.Refresh
    End If

Open in new window

0
 
GRayLCommented:
Thanks, glad to help.
0
 
Arthur_WoodCommented:
Glad to be of assistance

AW
0

Featured Post

The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now