MS Access DAO Connection Discard Changes On Exit

前端 未结 1 382

So I have this Access form where I use this VBA code with a DAO connection to a MySQL database. Everything works great but if the user closes the form without clicking save butt

相关标签:
1条回答
  • 2021-01-28 04:03

    Consider a different approach where you have users enter an unbound form and click a save button to update the MySQL table from populated fields. Exiting form without save will do nothing. This is also a more proactive approach as it allows you to check validation and other logic prior to running save action.

    Below uses a parameterized append query with QueryDefs. Also, ID is assumed to be an autonumber and hence left out of query. Sub should be placed behind the OnClick trigger event of save button.

    Private Sub SaveButton_Click()
        Dim db As DAO.Database, qdef As DAO.QueryDef
        Dim SQL As String
    
        Set db = OpenDatabase("", False, False, Globales.ConnString)
    
        ' PREPARED STATEMENT WITH NAMED PARAMETERS
        SQL = "PARAMETERS ns_param VARCHAR(255), ncom_param INTEGER, db_param VARCHAR(255), " _
              & "         ncnt_param INTEGER, nt_param INTEGER, e_param VARCHAR(255);" _
              & " INSERT INTO (NombreSuplidor, NumeroComerciante, DescripcionBienes, " _
              & "              NombreContacto, NumeroTelefono, Email) " _
              & " VALUES (ns_param, ncom_param, db_param, ncnt_param, nt_param, e_param);"
    
        ' INITIALIZE QUERYDEF
        Set qdef = db.CreateQueryDef("", SQL)
    
        ' BIND PARAMETERS TO FORM FIELDS
        qdef!ns_param = Forms!MyFormName!NombreSuplidor
        qdef!ncom_param = Forms!MyFormName!NumeroComerciante
        qdef!db_param = Forms!MyFormName!DescripcionBienes
        qdef!ncnt_param = Forms!MyFormName!NombreContacto
        qdef!nt_biens_param = Forms!MyFormName!NumeroTelefono
        qdef!e_param = Forms!MyFormName!Email
    
        ' RUN ACTION QUERY
        qdef.Execute dbFailOnError
    
        Set qdef = Nothing    
    End Sub
    
    0 讨论(0)
提交回复
热议问题