Somos Expertos Access. Contacto atravez de Skype Skype logo expertos_7

Inserting a record in SQL Server and retrieving key ID.

There are many ways to insert records and retrieve that records key value, this approach will probably be among the quickest since all of the processing occurs on the server, not in Access. The technique uses ADODB recordsets to fetch records from SQL Server.

CODE:

Private Function CreateDatabaseRecord() As Boolean
Dim strSQL As String
Dim rsDoc As ADODB.Recordset
Dim rs_Value As ADODB.Recordset
    
    ‘Create database record
   On Error GoTo CreateDatabaseRecord_Error
 
    strSQL = “Insert Into tblEventLetters(LetterTypeID, EventID, CreatedBy) Values(” & lngDocumentTypeID & “, ” & lngEventID & _
        “, ‘” & GetNetworkName() & “‘); SELECT SCOPE_IDENTITY() as NewEventLetterID”
    If con.State = adStateClosed Then
        OpenMyConnection
    End If
    Set rsDoc = con.Execute(strSQL)
    Set rs_Value = rsDoc.NextRecordset
    With rs_Value
        lngDocumentID = !NewEventLetterID
    End With
    
    Set rs_Value = Nothing
    Set rsDoc = Nothing
    
    CreateDatabaseRecord = True
 
   On Error GoTo 0
   Exit Function
 
CreateDatabaseRecord_Error:
    CreateDatabaseRecord = False
    MsgBox “Error ” & Err.Number & ” (” & Err.Description & “) in procedure CreateDatabaseRecord of Class Module clsDocManager”
End Function
 
Private Function CreateDatabaseRecord() As Boolean
Dim strSQL As String
    Dim rsDoc As ADODB.Recordset
    Dim rs_Value As ADODB.Recordset
    
    ‘Create database record
    ‘strSQL = “Insert Into tblEventLeters(LetterTypeID, EventID) Values(” & ReadGV(“LetterTypeID”, lngNumber) & “, ” & ReadGV(“EventID”, lngNumber) & _
        “)”
   On Error GoTo CreateDatabaseRecord_Error
 
    strSQL = “Insert Into tblEventLetters(LetterTypeID, EventID, CreatedBy) Values(” & lngDocumentTypeID & “, ” & lngEventID & _
        “, ‘” & GetNetworkName() & “‘); SELECT SCOPE_IDENTITY() as NewEventLetterID”
    If con.State = adStateClosed Then
        OpenMyConnection
    End If
    Set rsDoc = con.Execute(strSQL)
    Set rs_Value = rsDoc.NextRecordset
    With rs_Value
        lngDocumentID = !NewEventLetterID
    End With
    
    Set rs_Value = Nothing
    Set rsDoc = Nothing
    
    CreateDatabaseRecord = True
 
   On Error GoTo 0
   Exit Function
 
CreateDatabaseRecord_Error:
    CreateDatabaseRecord = False
    MsgBox “Error ” & Err.Number & ” (” & Err.Description & “) in procedure CreateDatabaseRecord of Class Module clsDocManager”
End Function
 
CODE Review
You will notice that the SQL string contains two statements separated by a “;”. Using this technique will allow you to submit multiple statements for processing to the server. The gist of the technique is the second recordset being retrieved with the KEY ID, in this case NewEventLetterID. SCOPE_IDENTITY() insures you receive your KEY ID and not the latest one generated for that table, which may be from another user in the system.
 
Acerca de

Juan Soto es un desarrollador senior de Access en IT Impact Inc. y un MVP de Microsoft Access y se especializa en Access con bases de datos de SQL Server. Su pasión por el acceso lo ha llevado ayudar a una amplia gama de empresas a establecer un entorno seguro, estable y eficiente con SQL Server. Él es un orador frecuente en los grupos de usuarios de Access en todo el país y recientemente habló en el Orange County SQL Saturday # 73. Si desea que Juan hable en su próxima reunión de grupo, puede ponerse en contacto con él aquí.

Publicado en SQL Server Etiquetado con:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

 

Quienes Somos

ExpertosMicrosoftAccess.com es un servicio de la empresa IT Impact, Inc., una compañía de programación y servicios para empresas en Latino América. Ofrecemos servicios en .Net, SQL Server y Microsoft Access. Muchos de nuestros desarrolladores han obtenido el galardón de Access MVP, un título proveído por Microsoft a aquellos que han hecho aportes a la comunidad y que han demostrado tener conocimientos superiores del producto.

Nuestro Equipo

  • Le ayudamos a "Descubrir el poder de sus datos™" con reportes y sistemas de Access excepcionales .
  • Creamos soluciones de bases de datos personalizadas utilizando Microsoft Access y / o SQL Server.
  • Nuestros consultores ganaron sus estrellas en las empresas de servicios y/o manufactura antes de convertirse en programadores.

Blogs anteriores