Access - A veces no acepta el codigo

 
Vista:

A veces no acepta el codigo

Publicado por Willy (1 intervención) el 07/05/2014 19:16:41
Agradezco la ayuda que me puedan dar pues soy como novato en esto

realice el siguiente codigo con el fin de que si coinciden dos campos en la tabla "Evento" no permita continuar, de lo contrario traiga los datos de la tabla "Personal" y cree un registro en la tabla "Evento", ademas de permitir crear nuevos registros en la tabla "Personal".

El codigo lo tengo en el textbox "Documento", el problema radica que a veces corre bien, a veces vota el Msgbox("No puede registrarlo por estar duplicado") sin haberse cumplido las condiciones ...Gracias por sus respuestas

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Dim Rec As DAO.Recordset
Dim Dbs As DAO.Database
Set Dbs = CurrentDb
If IsNull(Me![Documento]) Or Me![Documento] = "" Then Exit Sub
Set Rec = Dbs.OpenRecordset("SELECT* FROM Personal WHERE documento = clng('" & Me!Documento & "')")
      If DLookup("[documento]", "[Evento]", "Documento=" & Documento) And DLookup("[Fecha]", "[Evento]", "[Fecha] =
         #" & Format(Fecha, "dd/mmm/yy") & "#") Then
        MsgBox ("No puede registrarlo por estar duplicado")
        Me.Fecha = ""
        Me.Ritual = ""
        Me.Documento = ""
        Me.VM = ""
        Me.Nombre = ""
        Me.Direccion = ""
        Me.Telefono = ""
        Me.Sede_Origen = ""
        Me.Escuela = ""
        Me.EPS = ""
        Me.Fecha.SetFocus
    Else
        If Rec.EOF Then
            If MsgBox("El Documento no existe, desea Ingresarlo?", vbYesNo) = vbNo Then
                Me!Documento = ""
                Me.VM = ""
                Me!Nombre = ""
                Me.Direccion = ""
                Me.Telefono = ""
                Me.Sede_Origen = ""
                Me.Escuela = ""
                Me.EPS = ""
                Me.Documento.SetFocus
            Exit Sub
            End If
            Rec.AddNew
            Rec![Documento] = Me.Documento
            Rec!VM = Me.VM
            Rec!Nombre = Me.Nombre
            Rec!Direccion = Me.Direccion
            Rec!Telefono = Me.Telefono
            Rec!Sede_Origen = Me.Sede_Origen
            Rec!Escuela = Me.Escuela
            Rec!EPS = Me.EPS
            Rec.Update
            MsgBox "Ingrese los datos y pulse Aceptar"
            Me.VM = ""
            Me!Nombre = ""
            Me.Sede_Origen = ""
            Me.Escuela = ""
            Me.EPS = ""
            Me!Telefono = ""
            Me![Documento].SetFocus
Else
            Me.Documento = Rec![Documento]
            Me.Nombre = Rec!Nombre
            Me.VM = Rec!VM
            Me.Direccion = Rec!Direccion
            Me.Telefono = Rec!Telefono
            Me.Sede_Origen = Rec!Sede_Origen
            Me.Escuela = Rec!Escuela
            Me.EPS = Rec!EPS
 End If
 End If
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

A veces no acepta el codigo

Publicado por jose (830 intervenciones) el 08/05/2014 13:59:29
saludos willy

CREO QUE Estás desaprovechando las bondades de access y me explico :
tanto el formulario como los demás controles los puedes poner como vinculados para que haya que trabajar tanto

de como vincular el formulario:

Primero vete a propiedades del formulario --> datos--> origen del registro (despliegas y selecciona la tabla o consulta que quieras)
Con esto ya estamos en disposicion de ver todos los registros de esa tabla o consulta en el formulario, sin hacer nada más



de como vincular los cuadros de texto

Ahora tienes que poner los cuadros de texto que desees y tambien vincularlos a la tabla o consulta que hemos realizado en el formulario
ejemplo: en el textbox (cuadro de texto) que tienes con el nombre de Documento vas a propiedades --> datos-->origen de control buscas documento
el nombre del textbox no tienen porque llamarse igual que el origen de control aunque para no liarse es mejor que si sean iguales

de como evitar duplicados

vas a la tabla y en el campo documento pones ---en general ----- indexado= sin sin duplicados (esto impide que se pueda repetir )



de como desplazarse y crear nuevos registros

en la parte de abajo izquierda del formulario utiliza !< < desplazamiento hacia atras > >! desplazamiento hacia adelante
* añadir nuevo registro


de como seleccionar un documento concreto

en propieades de un campo de texto o de un combobox(ccuadro combinado) en el evento despues de actualizar
me.recordsource= "select * from personal where personal! documento = " & str$(me!cuadrocombinado) & " "
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