Duda existencial

Antes que todo: gracias por el tiempo y ayuda...(soy inexperta en el tema pero tengo ganas de aprender)
1)Tengo un formulario EMPRESAS con 7 campos, los que incluyen su Id y Ciudad.
2)Este ultimo campo esta vinculado (cuadro combinado) a la tabla CIUDADES la cual a su vez tiene IdCiudades y NombCiudades como únicos campos.
3)Dentro del formulario EMPRESAS para permitir ingresar una ciudad que no se encuentre en el listado doy el siguiente evento en "Al no estar en la lista":
Private Sub Ciudad_NotInList(NewData As String, Response As Integer)
Response = 0
Dim X As Integer, newcode As Long
X = MsgBox("No se encuentra en el listado, desea agregarlo?", vbYesNo)
If X <> 6 Then Exit Sub
Dim DB As Database
Dim RS As Recordset
Set DB = CurrentDb
Set RS = DB.OpenRecordset("CIUDADES", dbOpenDynaset)
RS.AddNew
RS(1) = NewData
[Ciudad] = RS(0)
RS.Update
RS.Close
DB.Close
Ciudad.Requery
DIRECCION.SetFocus ' opcional para evitar el drop down
End Sub
Private Sub Comando8_Click()
On Error GoTo Err_Comando8_Click
DoCmd.Quit
Exit_Comando8_Click:
Exit Sub
Err_Comando8_Click:
MsgBox Err.Description
Resume Exit_Comando8_Click
End Sub
4) ¿Qué hago mal? Creo que tiene que ver con las Dim?
Muchísimas gracias
Respuesta
1
Interesante... muy interesante...
En primer lugar quita el dbOpenDynaset
Deja solo:
Set RS = DB.OpenRecordset("CIUDADES")
ahora ¿que es esto?
[Ciudad] = RS(0)
Que es el [Ciudad] (desconozco esta forma de programar, puede que aprenda algo nuevo también)
Para que está el Ciudad. ¿Requery?
¿Para qué esta el Response = 0 si luego no lo usas en todo el código?
Y por ultimo y no por eso carece de importancia, ¿cuál es el mensaje de error que te da?
Comentame que algo bueno vamos a sacar
Muchas gracias por la rápida respuesta. Para ser sincera quiero aclarar que realmente soy inexperta en visual basic... pero me encuentro haciendo una base de datos por urgente necesidad. Por lo que he tratado de obtener autodidactamente toda la información posible. Entre ellas encontré un ejemplo muy sencillo que me sirvió para entender como tenía que generar el evento cuando un dato no se encuentra en un listado y lo que quiero es agregarlo automáticamente y, bueno, sin más ni más copié dicho texto adecuándolo a mi necesidad...(cosa que en otras ocasiones me resultaba). Lamento no haber aclarado antes que soy un cero a la izquierda en visual. Ya que en el fondo lo que intento hacer es adecuar el ejemplo que tengo (y que funciona) al mío. ¿Se puede hacer, ya que tengo casi la misma base?.
Gracias de todos modos
Tratemos las cosa por partes entonces...
¿Cuál es el mensaje de error que te da?
¿Cómo llegas a la conclusión que no funciona?
Me da el siguiente error:
Error de compilación:
No se ha definido el tipo definido por el usuario.
A continuación te especifico en el código:
--------------------------
Option Compare Database
Private Sub Ciudad_NotInList(NewData As String, Response As Integer)
Response = 0
Dim X As Integer, newcode As Long
X = MsgBox("No se encuentra en el listado, desea agregarlo?", vbYesNo)
If X <> 6 Then Exit Sub{¿a que se refiere el 6?}
Dim DB As Database{es aquí donde marca el error}
Dim RS As Recordset
Set DB = CurrentDb
Set RS = DB.OpenRecordset("Empresas", dbOpenDynaset)
RS.AddNew
RS(1) = NewData
[Ciudad] = RS(0)
RS.Update
RS.Close
DB.Close
Ciudad.Requery
Dirección.SetFocus
End Sub
Private Sub Comando15_Click()
On Error GoTo Err_Comando15_Click
DoCmd.Quit
Exit_Comando15_Click:
Exit Sub
Err_Comando15_Click:
MsgBox Err.Description
Resume Exit_Comando15_Click
End Sub
--------------------------
Disculpa las molestias...
Quita el Option Compare Database
Y comentame

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas