Access - compile error: user - defined type not defined

 
Vista:
Imágen de perfil de Jorge Romero

compile error: user - defined type not defined

Publicado por Jorge Romero (6 intervenciones) el 12/05/2015 21:04:57
Buenas tardes,


Me encuentro haciendo un formulario para mantenimientos en mi empresa pero me sale error de compilacion y es para la funcion de guardar, este es el codigo:

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
63
64
65
66
Private Sub BTN_GU_Click()
Dim doc As Integer
Dim cons As Integer
 
If IsNull(TXT_COP) Then
MsgBox ("!!! No ha Puesto Ningun dato ¡¡¡")
TXT_COP.SetFocus
 
Else
 
Dim rst As ADODB.Recordset
Dim sql As String
sql = "select COPA_ID from Mantenimiento where COPA_ID = '" & ([TXT_COP]) & "'"
Set cmd = New ADODB.Command
With cmd
       .ActiveConnection = CurrentProject.Connection
       .CommandText = sql
       Set rst = .Execute
       If (rst.BOF And rst.EOF) Then
       If (TXT_COP = "" Or LST_CLAS = "" Or LST_MOD = "" Or LST_TEC = "" Or TXT_CONT = "") Then
MsgBox ("!!! Le falta Algun Campo por llenar ¡¡¡")
Else
 
CurrentDb.Execute ("insert into Mantenimiento (COPA_ID,NOM_HOST,ID_CLASE,NUM_SERIE,NOM_CONTAC,LOCALIZACION,ID_MODELO,FABRICANTE,DISCO_DURO,MEMO_RAM,VEL_PROCESS,LNIATA,OBSERVACIONES,ID_TECNICO) values (" & "'" & ([TXT_COP]) & "'" & " ," & "'" & ([TXT_HOST]) & "'" & "," & "'" & ([TXT_SER]) & "'" & "," & "'" & ([LST_CLAS]) & "'" & "," & "'" & ([TXT_CONT]) & "'" & "," & "'" & ([TXT_LOC]) & "'" & "," & "'" & ([LST_MOD]) & "'" & "," & "'" & ([TXT_FAB]) & "'" & "," & "'" & ([TXT_DISC]) & "'" & "," & "'" & ([TXT_MEM]) & "'" & "," & "'" & ([TXT_PRO]) & "'" & "," & "'" & ([TXT_LNIA]) & "'" & "," & "'" & ([TXT_OBS]) & "'" & "," & "'" & ([LST_TEC]) & "'" & ")")
MsgBox ("!!! Registros Guardados con Exito ¡¡¡")
TXT_COP = ""
TXT_HOST = ""
TXT_SER = ""
LST_CLAS = ""
TXT_CONT = ""
TXT_LOC = ""
LST_MOD = ""
TXT_FAB = ""
TXT_DISC = ""
TXT_MEM = ""
TXT_PRO = ""
TXT_LNIA = ""
TXT_OBS = ""
LST_TEC = ""
TXT_COP.SetFocus
End If
 
 
Else
txt = rst!COPA_ID
MsgBox ("!!! Este Serial Ya Existe ¡¡¡")
TXT_COP = ""
TXT_HOST = ""
TXT_SER = ""
LST_CLAS = ""
TXT_CONT = ""
TXT_LOC = ""
LST_MOD = ""
TXT_FAB = ""
TXT_DISC = ""
TXT_MEM = ""
TXT_PRO = ""
TXT_LNIA = ""
TXT_OBS = ""
LST_TEC = ""
TXT_COP.SetFocus
 
End If
End With
End If
End Sub
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 Neckkito
Val: 529
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

compile error: user - defined type not defined

Publicado por Neckkito (1157 intervenciones) el 13/05/2015 20:16:04
Hola Jorge:

Lo primero que te diría es que, en tu consulta, especifiques mejor lo que pasa. ¿Cuando te sale el error y le das a depurar, qué línea te marca en amarillo? Porque la verdad es que con la información que das poca cosa puede hacerse.

De todas maneras me voy a tirar a la piscina, por probar suerte

Veo que utilizas ADO. Para poder utilizar ADO en Access tienes que tener registrada la referencia "Microsoft Active Data Objects x.y Library" (donde x.y es la versión). Si no la tienes registrada probablemente esa sea la causa del error.

Para registrarla: en el menú del VBE -> Herramientas -> Referencias, y la buscas ahí. Según tu versión de Office tendrás varias versiones. Lo suyo es registrar, como mínimo, la 2.8, o si la tienes la 6.1

A ver si hemos dado en el clavo.

Saludos,
firmaMail
http://neckkito.siliconproject.com.ar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Jorge Romero

compile error: user - defined type not defined

Publicado por Jorge Romero (6 intervenciones) el 19/05/2015 17:53:34
Gracias, compañero.

me podrias por favor enviar tu correo y yo te envio el archivo para que me ayudaras a analizarlo y a llegar a una solucion ?

Te agradeceria bastante.

gracias.
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
Imágen de perfil de Neckkito
Val: 529
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

compile error: user - defined type not defined

Publicado por Neckkito (1157 intervenciones) el 19/05/2015 18:46:14
Primero registra la librería que te comentaba ("Microsoft Active Data Objects x.y Library"). Si no te funciona me lo comentas y le echamos un vistazo.

Saludos,

Neckkito
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de jorge romero

compile error: user - defined type not defined

Publicado por jorge romero (6 intervenciones) el 19/05/2015 21:04:57
Gracias , me ha servido la solucion que me has dado.
pero ahora e sale algo que se llama :

Run-time error '-2147217913(80040e07)':

Data Type mismatch in criteria expression.

Que podria ser esto, si todos los campos estan con los criterios definidos?

Agradezco tu respuesta.
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
Imágen de perfil de Neckkito
Val: 529
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

compile error: user - defined type not defined

Publicado por Neckkito (1157 intervenciones) el 19/05/2015 21:17:53
El error te está diciendo que no coinciden los tipos.

Es decir, que tienes algo definido con un tipo de campo (string, integer, etc.) y lo estás intentando aplicar a "algo" cuyo tipo de campo es diferente.

Me resulta imposible decirte cuál o qué es.

Si cuando te sale el error le das al botón <Depurar> te marca una línea en amarillo. Ahí es donde está el error. Tendrías que revisar los tipos de los elementos implicados que te está marcando.

Saludos,

Neckkito
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Jorge

compile error: user - defined type not defined

Publicado por Jorge (6 intervenciones) el 19/05/2015 22:32:27
buenas tardes compa,

Mira ya revise los tipos y estan bien... este es el archivo que estoy haciendo te lo dejo adjunto.
estaba pensando dejarlo todo string peor pues por ejemplo las lst deben ser numericas ya que loq ue se va a mostrar en la consulta del fomulario seran los nombres y se guardaran los id en la tabla.

entonces no se si quieras revisarlo, te lo adjunto.
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
Imágen de perfil de Jorge

compile error: user - defined type not defined

Publicado por Jorge (6 intervenciones) el 20/05/2015 21:53:37
Saludos Neck,

Agradezco inmensamente tu ayuda ya que me has aclarado muchas dudas y ademas el codigo es mas eficiente del que tengo, auqneu ahora estoy haciendo el boton de eliminar y pues no cumple toda la sentencia osea se salta la primera verificacion que es la de COPA_ID .

Data Type mismatch in criteria expression en el boton


Gracias de antemano
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
Imágen de perfil de Neckkito
Val: 529
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

compile error: user - defined type not defined

Publicado por Neckkito (1157 intervenciones) el 20/05/2015 22:17:34
Vamos a ver...

Valores numéricos: asignación directa
Valores texto: asignación entrecomillada (comilla simple)
Valores fecha: asignación entre almohadillas

Por ejemplo, si el valor es numérico la sql sería:

CurrentDb.Execute "delete from Mantenimiento where COPA_ID =" & me.[TXT_COP]

Si el valor es texto la sql sería:

CurrentDb.Execute "delete from Mantenimiento where COPA_ID = '" & me.[TXT_COP] & "'"

Si el valor es fecha la sql sería:

CurrentDb.Execute "delete from Mantenimiento where COPA_ID = #" & format(me.[TXT_COP],"mm/dd/yy") & "#"

(En PC's con configuración regional española es necesario darle el formato de fecha inglés para que la Sql devuelva los valores correctos)

En tu caso, ¿qué tipo de campo es COPA_ID?

Abres la tabla Mantenimiento en vista diseño y, curiosamente, tú mismo le has dicho que el tipo de campo es numérico.

Con eso ya deberías saber cómo debería estar correctamente escrita la sql

Por otra parte, ¿para qué escribes control por control la asignación de su valor a una cadena vacía? Borra todas esas asignaciones y en su lugar escribe, simplemente:

Call borroControles

En las sql de selección del botón guardar y del botón consultar tienes la condición WHERE correctamente escrita, por lo que deberías haberte dado cuenta de cómo es la escritura correcta de esa condición WHERE. Te ruego pues que, en lugar de hacerme invertir mi tiempo en mirar lo que haces mal, te dediques antes a estudiar el código que ya existe y que seas tú el que inviertas ese tiempo, dado que la BD es tuya, no mía. Si lo hubieras hecho así te habrías dado cuenta no sólo del WHERE sino de la llamada al procedimiento de borrar datos (o eso o es que no entiendes para nada el código). Todo lo anterior, dicho sea de paso, te lo comento sin acritud, sino como petición para que el esfuerzo sea tuyo, no mío. Este hilo se está convirtiendo en algo interminable.

Saludos,

Neckkito
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