Access - error en codigo visual para un boton de acces

 
Vista:

error en codigo visual para un boton de acces

Publicado por davinia GJ (10 intervenciones) el 09/09/2005 13:20:39
hola amigos en un boton tengo este codigo:
Private Sub añadirregistro_Click()
On Error GoTo Err_añadirregistro_Click

Exp_Alero.Enabled = True
DoCmd.GoToRecord , , acNewRec
[Form_Añadir Nuevo Expediente].Expediente.SetFocus

Dim registro As ADODB.Recordset

Set conn = New ADODB.Connection
conn.Open cadenaconexion

Set registro = New ADODB.Recordset
registro.CursorType = adOpenKeyset
registro.LockType = adLockOptimistic

campo = \\\"Exp_Alero\\\"
tabla = \\\"EXPEDIENTES ALERO\\\"

registro.Open \\\"Select Max(\\\" & campo & \\\") as b From \\\" & tabla, conn

If registro.EOF Or registro.BOF Then
Else
Expediente = CInt(registro.Fields(0).Value) + 1
End If

registro.Close
conn.Close

pero a la hora de ejecutarlo me da errores en la linea del : Private Sub añadirregistro_Click()
y se pone en azul en:
Dim registro As ADODB.Recordset

la accion del boton es k al darle me sume uno del ultimo valor k hay en el campo de una tabla k ese campo es tipo texto por eso me lo tengo k pasar a numerico y sumarle uno.
no se si el codigo para lo k kiero esta bien o no .
si alguien me exa una mano se lo agradeceria weno y a todos os lo agradezco ya de antemano.
saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Error al declarar objeto Recordset en VBA

Publicado por Alejandro (4142 intervenciones) el 08/06/2023 20:12:13
El error que estás experimentando en la línea "Dim registro As ADODB.Recordset" es probablemente porque no has agregado la referencia correcta a la biblioteca de objetos de ADO en tu proyecto.

Para solucionar este problema, asegúrate de seguir estos pasos:

1. Abre tu proyecto en Visual Basic Editor.
2. Haz clic en "Herramientas" en la barra de menú.
3. Selecciona "Referencias" en el menú desplegable.
4. En la ventana de Referencias, busca y marca la casilla junto a "Microsoft ActiveX Data Objects x.x Library" (donde "x.x" representa la versión instalada en tu sistema). Si no encuentras esta referencia, es posible que debas instalar la biblioteca de ADO antes de continuar.
5. Haz clic en "Aceptar" para guardar los cambios.

Después de agregar la referencia correcta, el error en la línea "Dim registro As ADODB.Recordset" debería desaparecer.

Sin embargo, ten en cuenta que hay algunos problemas adicionales en tu código:

1. No has declarado las variables "campo", "tabla" y "cadenaconexion". Asegúrate de declarar e inicializar estas variables antes de utilizarlas en tu código.

2. Estás usando comillas dobles (\") dentro de tus cadenas de texto. Debes reemplazarlas por comillas simples (') para que el código sea válido. Por ejemplo, en lugar de "\\\"Exp_Alero\\\"", debería ser "'Exp_Alero'".

3. Estás utilizando la variable "Expediente" sin el prefijo "Me.". Si "Expediente" es un control en tu formulario, debes referenciarlo como "Me.Expediente".

Teniendo en cuenta estos puntos, aquí tienes una versión corregida del código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Private Sub añadirregistro_Click()
    On Error GoTo Err_añadirregistro_Click
 
    Exp_Alero.Enabled = True
    DoCmd.GoToRecord , , acNewRec
    [Form_Añadir Nuevo Expediente].Expediente.SetFocus
 
    Dim registro As ADODB.Recordset
    Dim conn As ADODB.Connection
    Dim campo As String
    Dim tabla As String
    Dim cadenaconexion As String
 
    Set conn = New ADODB.Connection
    conn.Open cadenaconexion
 
    Set registro = New ADODB.Recordset
    registro.CursorType = adOpenKeyset
    registro.LockType = adLockOptimistic
 
    campo = "Exp_Alero"
    tabla = "EXPEDIENTES ALERO"
 
    registro.Open "SELECT Max([" & campo & "]) AS b FROM [" & tabla & "]", conn
 
    If Not (registro.EOF Or registro.BOF) Then
        Me.Expediente = CInt(registro.Fields(0).Value) + 1
    End If
 
    registro.Close
    conn.Close
 
Exit_añadirregistro_Click:
    Exit Sub
 
Err_añadirregistro_Click:
    MsgBox Err.Description
    Resume Exit_añadirregistro_Click
End Sub

Asegúrate de reemplazar "Exp_Alero", "EXPEDIENTES ALERO" y "cadenaconexion" con los valores correctos para tu base de datos. Además, asegúrate de haber agregado la referencia adecuada a la biblioteca de objetos de ADO en tu proyecto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar