Access - Insertar Dato a una celda existente

 
Vista:
sin imagen de perfil

Insertar Dato a una celda existente

Publicado por Gaston (4 intervenciones) el 08/04/2015 20:11:08
Hola estimados, mi consulta es la siguiente.
Tengo un access donde hay dos columnas.
En una de ellas, hay ciertos números llamados ID.
En un form los muestro con DataGridView.
Tengo un textbox1 llamado ID, otro textbox2 llamado NOMBRE y un boton llamado AGREGAR.
Al apretar el boton, quiero que busque el numero de ID anotado en el textbox1 y le agrege el NOMBRE anotado en el textbox2. Si no encuentra el ID que salte error, o que si encuentra el ID y ya está escrito el nombre, que salte otro error.

De antemano muchas gracias !


consulta
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
sin imagen de perfil

Insertar Dato a una celda existente

Publicado por Gaston (4 intervenciones) el 08/04/2015 21:53:47
Le pago 1000 CLP al primero que me solucione el problema.
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
sin imagen de perfil
Val: 756
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Insertar Dato a una celda existente

Publicado por Jesús Manuel (375 intervenciones) el 09/04/2015 10:04:34
Adapta los campos que te indico a tus necesidades. He puesto comentarios para que veas que compruebo en cada caso, por si quieres hacer cambios para que te sirva de guía.

Tabla: tblLotes con los campos ID y Nombre
Formulario: campos txtID, txtNombre y subformLotes


En el evento click del botón Agregar:


If Not IsNull(Me.txtID) Then 'Comprobamos que no esta vacío txtID
If IsNull(DLookup("ID", "tblLotes", "[ID]=" & Me.txtID)) Then 'Buscamos en la tabla el valor de txtID
MsgBox "ID no encontrado", vbInformation, "ERROR" 'Si no existe, mensaje de error
Else ' Si existe, vemos que pasa con txtNombre
If Not IsNull(Me.txtNombre) Then 'Si txtNombre no esta vacío
If IsNull(DLookup("Nombre", "tblLotes", "[ID]=" & Me.txtID)) Then 'Si el campo Nombre para el ID esta vacío insertamos el valor de txtNombre
Dim CadenaSQL As String
CadenaSQL = "UPDATE tblLotes SET Nombre='" & Me.txtNombre & "' WHERE [ID]=" & Me.txtID
CurrentDb.Execute CadenaSQL 'Ejecutamos la sentencia SQL de actualización
Me.subformLotes.Requery ' Cargamos de nuevo el subformulario para ver los datos actualizados
Else ' Si el campo Nombre par el ID ya tiene un valor, mensaje de error
MsgBox "Campo NOMBRE ya tiene valor", vbInformation, "ERROR"
End If
Else 'Si txtNombre esta vacío, menaje de error
MsgBox "El campo NOMBRE esta vacío. Inserte un valor", vbInformation, "CAMPO VACÍO"
End If
End If
Else 'Si txtID esta vacío
MsgBox "El campo ID esta vacío. Inserte un valor", vbInformation, "CAMPO VACÍO"
End If



P.D.: La oferta económica no era necesaria
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
sin imagen de perfil
Val: 756
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Insertar Dato a una celda existente

Publicado por Jesús Manuel (375 intervenciones) el 09/04/2015 10:32:46
Me parecía algo "lioso" el código anterior y le he dado una vuelta:


If IsNull(Me.txtID) Then ' Si txtID esta vacío, mensaje de error
MsgBox "El campo ID esta vacío. Inserte un valor", vbInformation, "CAMPO VACÍO"
Else
'Si txtID no esta vacío
If IsNull(DLookup("ID", "tblLotes", "[ID]=" & Me.txtID)) Then 'Si el ID no esta en la tabla, mensaje de error
MsgBox "ID no encontrado", vbInformation, "ERROR"
Else
'Si el ID esta en la tabla
If Not IsNull(DLookup("Nombre", "tblLotes", "[ID]=" & Me.txtID)) Then 'Vemos si para el ID el Nombre tiene valor
MsgBox "El campo Nombre para el ID " & Me.txtID & " ya tiene valor", vbInformation, "CAMPO CON VALOR"
Else
'Si para el ID el Nombre esta vacío
If IsNull(Me.txtNombre) Then 'Comprobamos si el cuadro de texto txtNombre esta vacío
MsgBox "El campo Nombre para el ID " & Me.txtID & " esta vacío." & vbCrLf & vbCrLf & "Inserte un valor en el cuadro de texto NOMBRE para actualizar este campo", vbInformation, "CAMPO VACÍO"
Else
'Si el cuadro de texto no esta vacío, contruimos la sentancia SQL de actualización
Dim CadenaSQL As String
CadenaSQL = "UPDATE tblLotes SET Nombre='" & Me.txtNombre & "' WHERE [ID]=" & Me.txtID
CurrentDb.Execute CadenaSQL
Me.subformLotes.Requery 'Recargamos el subformulario para ver los datos actualizados
End If
End If
End If
End If
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
sin imagen de perfil

Insertar Dato a una celda existente

Publicado por Gaston (4 intervenciones) el 10/04/2015 05:18:07
Se me olvidó especificar que era vb 2010 express :( . El IsNull, Dlookup no me los reconoce :/ y el & tampoco.
Alguna solucion porfavor!!!
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
sin imagen de perfil
Val: 756
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Insertar Dato a una celda existente

Publicado por Jesús Manuel (375 intervenciones) el 10/04/2015 09:12:47
Te recomiendo plantear tu post en el foro de VB si ese es tu lenguaje de programación
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
sin imagen de perfil

Insertar Dato a una celda existente

Publicado por Gaston (4 intervenciones) el 10/04/2015 12:46:38
A sorry, esque como era de Access creí que podía ser cualquier lenguaje. Ya está en el foro de Visual Basic !! Gracias a todos de todos modos !
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