VB6 y Access 2003

Buenas tardes:
Tengo un sistema hecho en VB6 con acceso a una DB Access 2003, copio a continuación el código de la función Insertar Ubicación a manera de ejemplo de lo que necesito y como se podrá observar luego del INSERT INTO ... Realizo otra consulta para que me devuelva el autogenerado del registro y poder mostrarlo en el form, ahora lo que necesito que si se puede claro de la misma forma de realizar pero un UPDATE ... Me devuelva los REGISTROS AFECTADOS, necesito saber cual es la sintaxis exacta para poder realizar esto.
Muchas gracias por su atención.
Public Function SQL_Insertar_Ubicacion(ByVal Departamento_Ubi As String, ByVal Provincia_Ubi As String, ByVal Distrito_Ubi As String, ByVal Direccion_Ubi As String,  ByVal Referencia_Ubi As String) As Integer
    On Error GoTo HandErr
    Dim strSQL As String
    Dim oCMD, oCMD1 As ADODB.Command
    Dim oRS As ADODB.Recordset
    Set oRS = New ADODB.Recordset
    strSQL = "INSERT INTO UBICACIONES (Departamento_Ubi, Provincia_Ubi, Distrito_Ubi, Direccion_Ubi, Referencia_Ubi)" & _
            "VALUES ('" & UCase(Departamento_Ubi) & "', '" & UCase(Provincia_Ubi) & "', '" & UCase(Distrito_Ubi) & "' ,'" & UCase(Direccion_Ubi) & "', '" & UCase(Referencia_Ubi) & "')"
    Set oCMD = New ADODB.Command
    With oCMD
        .ActiveConnection = cn
        .CommandType = adCmdText
        .CommandText = strSQL
        .Execute
        'después del insert ejecuto inmediatamente esta consulta sql para que me muestre el código autogenerado
        .CommandText = "SELECT @@IDENTITY AS COLUMNA_AUTONUMERICA"
        Set oRS = .Execute
    End With
    SQL_Insertar_Ubicacion = oRS.Fields("COLUMNA_AUTONUMERICA")
Exit Function
HandErr:
        MsgBox "Error en la función Insertar Ubicación: " & Err.Description, vbExclamation + vbOKOnly, "Mensaje de Error"
End Function

2 respuestas

Respuesta
1
Ese comportamiento que pides es nativo en SQL, y de .NET el comando que ejecuta el Update te devuelve el numero de registros que se afectaron con esa instrucción.
Se me ocurre que coloques algo como: Dim reg as integer
reg = ors.Fileds(0)  y verifica si asi te devueleve el valor que tu necesitas.
Como te dije se que sql lo hace no lo se para access que es lo que ue tu estas utilizando.
Respuesta
1
Amigoq tal, Creo que has hecho un poco más de Código :D
Pero bueno si la idea es ver el Siguiente consecutivo solo haría Falta
poner
Rs.Recordcount + 1
Ello te mostraria el siguiente Consecutivo
o en su defecto ahcer un Procedimiento
Sub Codificar(Tabla As String, OTexto As TextBox)
        Conectar
        Dim Rs1 As ADODB.Recordset
        Set Rs1 = New ADODB.Recordset
        With Rs1
            .CursorLocation = adUseClient
            .CursorType = adOpenDynamic
            .LockType = adLockOptimistic
            .Open Tabla, Cn
        End With
        OTexto.Text = Format(Rs1.RecordCount + 1, "00000")
        Set Rs1 = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas