Access - Campo numerico, con boton k me sume 1 a ese campo

 
Vista:

Campo numerico, con boton k me sume 1 a ese campo

Publicado por Davinia Gj (10 intervenciones) el 07/09/2005 18:43:43
Hola amigos, tengo otra cuestioncilla :P
Vereis tengo una clave primaria que se llama "expediente" de tipo numerico, y ese valor me aparece en un formulario, este formulario tiene un boton k se llama "nuevo", ese boton lo k me hace es al valor que aparece en la casilla de expediente le suma uno y me lo muestras ,se pone solo al darle al boton, bien la cuestion es k tengo la idea clara de lo k kiero hacer pero estoy algo verde con el codigo de visual: esto es lo k yo tengo :

Option Compare Database
Private Sub SacarId()
Dim dbs As Database
Dim sql As String
Dim Reg As Recordset
Dim num As String
sql = "Select max(Expediente) from Expedientes"
Set dbs = CurrentDb
Set Reg = dbs.OpenRecordset(sql)
num = Reg.Fields(0)
Me.Expediente = num + 1
Me.Expediente.Visible = False
End Sub

Private Sub añadirregistro_Click()
On Error GoTo Err_añadirregistro_Click

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

Exit_añadirregistro_Click:
Exit Sub

Err_añadirregistro_Click:
MsgBox Err.Description
Resume Exit_añadirregistro_Click
End Sub

Private Sub Form_load()
Expediente.Enabled = False

en las 2 ultimas lineas me da error en el enable del from_load y cuando ejecuto la aplicacion me da como mensaje _ error de compilacion: no se encuentra el metodo o el dato miembro y no se pq o k le falla,
A versi alguien le puede hechar un vistazo, pq a lo mejor me sobra o me falta algo o se hace mucho mas sencillo k todo esto,
gracias a todos lo k me lean,
saludos davinia

AAA por cierto como puedo tambien indicarle k el primer numero de la tabla k tiene metido es el 971,es el 1º registro como se lo indico para k me lo sume??
graciasssssss
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

Generar un nuevo número de expediente y establecer un valor inicial

Publicado por Alejandro (4142 intervenciones) el 08/06/2023 19:36:07
Para solucionar el problema del error de compilación y establecer un valor inicial para el número de expediente, puedes realizar los siguientes cambios en tu código:

1. Error de compilación en `Expediente.Enabled = False`:
Parece que estás tratando de deshabilitar el control `Expediente` en el evento `Form_Load`. Sin embargo, el control debe referenciarse utilizando el nombre del formulario en lugar de `[Form_Añadir Nuevo Expediente]`. Modifica la línea de código como sigue:
1
Me.Expediente.Enabled = False

2. Establecer un valor inicial para el número de expediente:
Si deseas establecer un valor inicial para el número de expediente, puedes agregar una condición en la función `SacarId` para comprobar si no hay registros en la tabla. Si no hay registros, asigna el valor inicial (971); de lo contrario, realiza la consulta para obtener el máximo y sumarle uno. Aquí está el código modificado:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub SacarId()
    Dim dbs As Database
    Dim sql As String
    Dim Reg As Recordset
    Dim num As Long
    sql = "SELECT MAX(Expediente) AS MaxExp FROM Expedientes"
    Set dbs = CurrentDb
    Set Reg = dbs.OpenRecordset(sql)
 
    If Reg.EOF Then
        num = 971 ' Valor inicial si no hay registros en la tabla
    Else
        num = Reg.Fields("MaxExp").Value + 1
    End If
 
    Me.Expediente = num
    Me.Expediente.Visible = False
    Reg.Close
    Set Reg = Nothing
    Set dbs = Nothing
End Sub

Con estos cambios, deberías poder solucionar el error de compilación y establecer un valor inicial para el número de expediente.

¡Espero que esto te ayude!
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