Hola tengo un problema quiero verificar si un usuario existe al momento de guardarlo y que muestre un mensaje de usuario existe..los usuarios los muestro por una Listbox,,estoy usando vb6.0 y sql server 2000 gracias
1 Respuesta
Respuesta de denciso
1
1
denciso, Soy una persona multifacética, tanto manejo la informática,...
Antes del AddNew, debes de realizar un find de acuerdo a como estas programando: Algo como rst.movefirst Do while not rst.eof if rst("Usuario") = Text1.Text then ' existe el usuario end if rst.movenext loop
Lo hice como me dijiste pero me sale un error con el rst.update dice que no puede ingresar clave duplicada no me hace la busqueda.......
Todo depende de la estructura de tu tabla, si el usuario le asignas una clave de identificación con un simple índice de llave primaria puedes obtener el resultado de clave existente al intentar duplicar los datos, se puede realizar la asignación de clave en forma consecutiva de acuerdo al último elemento como otra opción y la última de acuerdo a lo que veo que tienes es realizando una consulta a la base de datos antes de insertar el nuevo registro. squery = "select * from mitabla where miusuario = " & text1.text
ahh ok te voy a colocar el codigo del boton guardar para q tengas mas claro lo que tengo solo me falta es el codigo que verique q el usuario existe. Private Sub Command1_Click() rst.Open "SELECT * FROM Data_Usuarios", cnn, adOpenDynamic, adLockOptimistic If Text1.Text = vbNullString Or _ Text2.Text = vbNullString Or _ Text3.Text = vbNullString Or _ Text4.Text = vbNullString Or _ Text5.Text = vbNullString Or _ Text6.Text = vbNullString Or _ Text7.Text = vbNullString Or _ Text8.Text = vbNullString Then errormsg = MsgBox("Debe Llenar Todos Los Campos", vbCritical, "Error") Exit Sub End If rst.AddNew rst("Usuario") = Text1.Text rst("Contraseña") = Crypt(Text2.Text) rst("Nombre") = Text3.Text rst("Apellido") = Text4.Text rst("Contra_Seguridad") = Crypt(Text5.Text) rst("Num_Carnet") = Text6.Text rst("Unidad") = Text7.Text rst("Nom_Equipo") = Text8.Text rst.Update Text1.Text = vbNullString Text1.Enabled = True Text2.Text = vbNullString Text2.Enabled = True Text3.Text = vbNullString Text3.Enabled = True Text4.Text = vbNullString Text4.Enabled = True Text5.Text = vbNullString Text5.Enabled = True Text6.Text = vbNullString Text6.Enabled = True Text7.Text = vbNullString Text7.Enabled = True Text8.Text = vbNullString Text8.Enabled = True infomsg = MsgBox("Usuario Creado", vbExclamation, "Usuario Creado") rst.Close Form2.List1.Clear rst.Open "SELECT * FROM Data_Usuarios ORDER BY Usuario", cnn, adOpenDynamic, adLockOptimistic Do Until rst.EOF = True Form2.List1.AddItem rst.Fields(0) rst.MoveNext Loop rst.Close End Sub
Gracias....Saludos
Rst.Open "SELECT * FROM Data_Usuarios", cnn, adOpenDynamic, adLockOptimistic If Text1.Text = vbNullString Or _ Text2.Text = vbNullString Or _ Text3.Text = vbNullString Or _ Text4.Text = vbNullString Or _ Text5.Text = vbNullString Or _ Text6.Text = vbNullString Or _ Text7.Text = vbNullString Or _ Text8.Text = vbNullString Then errormsg = MsgBox("Debe Llenar Todos Los Campos", vbCritical, "Error") Exit Sub End If rst.movefirst Do while not rst.eof if rst("Usuario") = Text1.Text then exit sub end if rst.movenext loop rst.AddNew rst("Usuario") = Text1.Text rst("Contraseña") = Crypt(Text2.Text) rst("Nombre") = Text3.Text rst("Apellido") = Text4.Text rst("Contra_Seguridad") = Crypt(Text5.Text) rst("Num_Carnet") = Text6.Text rst("Unidad") = Text7.Text rst("Nom_Equipo") = Text8.Text rst.Update Text1.Text = vbNullString Text1.Enabled = True Text2.Text = vbNullString Text2.Enabled = True Text3.Text = vbNullString Text3.Enabled = True Text4.Text = vbNullString Text4.Enabled = True Text5.Text = vbNullString Text5.Enabled = True Text6.Text = vbNullString Text6.Enabled = True Text7.Text = vbNullString Text7.Enabled = True Text8.Text = vbNullString Text8.Enabled = True infomsg = MsgBox("Usuario Creado", vbExclamation, "Usuario Creado") Rst. Close Form2. List1. Clear Rst. Open "SELECT * FROM Data_Usuarios ORDER BY Usuario", cnn, adOpenDynamic, adLockOptimistic Do Until rst.EOF = True Form2. List1. AddItem rst. Fields(0) Rst. MoveNext Loop rst.Close End Sub