Autor
|
Tema: AYUDA CON VALIDACION Y BUSQUEDA EN BASE DE DATOS (Leído 3,626 veces)
|
CARRY-ON
Desconectado
Mensajes: 199
|
OLA TENGO UN FORMULARIO QUE GUARDA LOS DATOS EN UNA BASE DE DATOS
pero necesito que antes de guardar verifique que algunos datos no esten actualmente en la base de datos
ejmplo
tengo un txt que me pide un nombre y pongo manuel pero al guardar si ya hay un nombre manuel me de un mensaje de advertencia y tenga que poner otro nombre que no este en la base de datos
|
|
|
En línea
|
|
|
|
abel_c_b
Desconectado
Mensajes: 91
|
estas seguro que quieres hacer eso? por ejemplo si tu aplicacion esta corriendo en una empresa en donde hay varias personas que se llaman manuel, les sacara una advertencia, no creo que eso deba ser un problema, el problema seria por ejemplo si escriben dos veces el numero de identificación, eso si seria un problema, saludos y me comentas
|
|
|
En línea
|
|
|
|
zXxOsirisxXz
Desconectado
Mensajes: 50
|
Perdona por no tener una respuesta directa..
Pero, me dieron BD~VB en el cole hace tiempo, y ps, ise eso mismo, pero con un comando llamado EOF/BOF si puedes, buscate info sobre el. Son como para buscar de arriba a abajo la BD para no tener problemas con me parece.
Salu2
|
|
|
En línea
|
|
|
|
Hans el Topo
Desconectado
Mensajes: 1.754
"Estoy cansado de no hacer nada"
|
tan simple como hacer una consulta mirando en la base de datos si existe ya ese dato... si existe sacas mensajito sino no lo sacas e insertas para hacer consultas y demás busca por el forito, también puedes poner se cambo de clave primaria asi te dará petardazo al meter dos datos iguales, controlando el error podrías mostrar el mensajito on error goto actimel: tu codigo exit sub actimel: if err.number=nomacuerdo que error es msgbox "ERROR! El nombre " & txtnombre & " ta duplicado. " txtnombre="" endif endusb
|
|
|
En línea
|
|
|
|
CeLaYa
Desconectado
Mensajes: 543
|
eso es facil, puedes hacer una consulta SQL para que busque registros si encuentra alguno que te mande el mensaje de error, en caso contrario que lo agrege..
|
|
|
En línea
|
"La soledad es el elemento de los grandes talentos". Cristina de Suecia (1626-1689) Reina de Suecia.
|
|
|
CARRY-ON
Desconectado
Mensajes: 199
|
eso es facil, puedes hacer una consulta SQL para que busque registros si encuentra alguno que te mande el mensaje de error, en caso contrario que lo agrege..
pero no se donde colocar la consulta ni como redactarla
|
|
|
En línea
|
|
|
|
CeLaYa
Desconectado
Mensajes: 543
|
la consulta la pondrias antes de guardar tu registro. si posteas el código que tienes para guardar ayudaría mucho para decirte como debes hacerlo, pero mientras te dejo algo: para buscar si el registro existe más o menos deberás hacer lo siguiente: ...'Abres tu bd
'Abres tu tabla por medio de una consulta Set tb = bd.OpenRecordSet("SELECT * FROM Tabla WHERE Nombre = '" & txtNombre.text & "';")
if tb.RecordCount > 0 then ' si encontro registros se supone debe mandarte un mensaje de error. msgbox "ERROR! El nombre " & txtnombre & " ta duplicado. " txtnombre.text="" else .'aqui guardas tb.Addnew.... end if
...'Cierras tu bd
|
|
|
En línea
|
"La soledad es el elemento de los grandes talentos". Cristina de Suecia (1626-1689) Reina de Suecia.
|
|
|
TyMeS
Desconectado
Mensajes: 343
|
Hace tiempo que no toco BDD, pero eso no sería quizás más comodo el hacerlo mediante triggers en la BDD y después capturar excepciones en la aplicación¿?
|
|
|
En línea
|
Es más grande el hombre que se levanta, que el que no ha caído.
|
|
|
LICHONGO
Desconectado
Mensajes: 13
|
hola que tal yo aprendi visual de una manera muy rara a eso me refiero que no se nada de SQL de ADO ni de DAO cuando me hablan de eso no se ni que es pero he realizado aplicaciones y me funcionan
lo primero que hago en una aplicacion es añadir un control Data y lo quito esto es para poder crear las variable de la base da datos y la de la tabla
el codigo seria algo como asi
__________________________________________________________________ General Declaraciones 'esto no es el codigo esto es donde se declaran las variables
Public db As Database 'esta variable es para la base de dato Public rt As Recordset 'esta variable es para la tabla Public Band as Boolean 'esta variable es para hacer la busqueda Public resp As String 'esta vairable es para carateres
'para abrir la base de datos primero la buscamos en la raiz del programa If Right(App.Path, 1) = "\" Then Set db = OpenDatabase(App.Path + "MI Base de Datos.mdb") 'con esto la abrimos Else Set db = OpenDatabase(App.Path + "\MI Base de Datos.mdb") 'la diferecia esta en el (\) antes del nombre de la BD End If Set rt = db.OpenRecordset("MI Tabla") 'aqui abrimos la tabla ' supongamos que nuestra tabla es de empleados ' y los campos sean Codigo, Nombres, Apellidos, Direccion, Telefono, Cargo, Fecha de Ingreso ' los campos en la programacion serian algo asi como ' Codigo = rt.Fields(0) ' Nombres = rt.Fields(1) ' Apellidos = rt.Fields(2) ' Direccion = rt.Fields(3) ' Telefono = rt.Fields(4) ' Cargo = rt.Fields(5) ' Fecha de Ingreso = rt.Fields(6)
'supongamos que tengamos un botton para agregar 'emplados, para esto escogemos un campo unico 'que seria el codigo este campo no ser repiete 'en nuestra tabla, los campos nombre, apellido 'direccion, telefono, cargo y fecha de ingreso 'si se pueden repetir 'para buscar si exite en la tabla hacemos un 'repetitivo con do while resp = InputBox("Introduzca el codigo del empleado", "Ingreso de Nuevo Empledo") If Len(Trim(resp)) = 0 Then MsgBox "Debe introducir un codigo para Ingresar Empleados", vbInformation, "Error Falta de Dato" Else rt.MoveFirst band = True Do While (rt.EOF = False) And band 'esto repiete hasta que no sea fin de la tabla o Band=verdadero If UCase(Trim(rt.Fields(0))) = UCase(Trim(resp)) Then 'verifica si exite el dato MsgBox "Ese Codigo ya esta Registrado", vbInformation, "Fin de Busqueda" band = False 'si lo encuentra antes de fin de la tabla hacemos band=falso para salir del do while Else rt.MoveNext End If Loop If band Then MsgBox "Ese codigo no esta registrado", vbInformation, "Fin de Busqueda" End If End If
|
|
|
En línea
|
|
|
|
CeLaYa
Desconectado
Mensajes: 543
|
LICHONGO ese código esta bien pero imaginate que pasaría si la tabla contiene muchos registros... se tardaría un monton en recorrer cada registro, lo mejor es hacer uns consulta sql para checar ese dato: Public db As Database 'esta variable es para la base de dato Public rt As Recordset 'esta variable es para la tabla Public Band as Boolean 'esta variable es para hacer la busqueda Public resp As String 'esta vairable es para carateres
'para abrir la base de datos primero la buscamos en la raiz del programa If Right(App.Path, 1) = "\" Then Set db = OpenDatabase(App.Path + "MI Base de Datos.mdb") 'con esto la abrimos Else Set db = OpenDatabase(App.Path + "\MI Base de Datos.mdb") 'la diferecia esta en el (\) antes del nombre de la BD End If
'supongamos que tengamos un botton para agregar 'emplados, para esto escogemos un campo unico 'que seria el codigo este campo no ser repiete 'en nuestra tabla, los campos nombre, apellido 'direccion, telefono, cargo y fecha de ingreso 'si se pueden repetir 'para buscar si exite en la tabla hacemos un 'repetitivo con do while resp = InputBox("Introduzca el codigo del empleado", "Ingreso de Nuevo Empledo") If Len(Trim(resp)) = 0 Then MsgBox "Debe introducir un codigo para Ingresar Empleados", vbInformation, "Error Falta de Dato" Else 'Aqui abrimos la tabla y checamos el dato. Set rt = db.OpenRecordset("SELECT * FROM MI Tabla" & _ "WHERE rt!Nombre = '" & resp & "';") if rt.recordcount > 0 then ' Si recordCount es mayor a 0 entonces si hay un registro con ese nombre msgbox "Ese Codigo ya esta Registrado", vbInformation, "Fin de Busqueda" else rt.AddNew ...... end if end if ' y no olviden cerrar la tabla y base de datos rt.close db.close 'Liberamos memoria set rt = nothing set db = nothing
|
|
|
En línea
|
"La soledad es el elemento de los grandes talentos". Cristina de Suecia (1626-1689) Reina de Suecia.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda en la validación de entrada de datos en C++
Programación C/C++
|
theluigy13etv
|
7
|
9,861
|
30 Junio 2011, 06:51 am
por leogtz
|
|
|
Función generalizada para busqueda en una base de datos
Programación Visual Basic
|
nbent
|
0
|
1,490
|
13 Septiembre 2015, 20:18 pm
por nbent
|
|
|
Validación de datos con Do while y condicionales en función C++
Programación C/C++
|
SojatDotar
|
1
|
4,475
|
5 Diciembre 2015, 19:29 pm
por MAFUS
|
|
|
Validacion en Base de Datos....
.NET (C#, VB.NET, ASP)
|
Guillito
|
2
|
2,531
|
26 Junio 2016, 14:13 pm
por Daniel Barrera
|
|
|
Validación de datos en XML con DTD
Desarrollo Web
|
Julián2016
|
1
|
2,053
|
13 Diciembre 2016, 21:21 pm
por fran800m
|
|