Visual Basic - Guardar

Life is soft - evento anual de software empresarial
 
Vista:

Guardar

Publicado por GRIS (1 intervención) el 14/09/2007 14:42:44
Hola a todos, si me podrian ayudar en esto estaría genial, lo que pasa es que tengo un formulario y guardo los campos en una tabla, todo hasta ahí bien, pero cuando ahora lo que quiero es que cuando quiera guardar un registro y ya este en la tabla que no lo duplique y me avise si es que se guardo o no se guardo según sea el caso, el codigo que utilizo es el siguiente.

Dim ensamble1 As DAO.Recordset
Set Lista = CurrentDb.OpenRecordset("Alumno", dbOpenDynaset)

With ensamble1
.AddNew
.Fields("Nombre") = Texto52
.Fields("Apellido") = Texto48
.Fields("Fecha") = Texto45
.Update
End With
end Sub

GRACIAS ...
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

RE:Guardar

Publicado por Ivan (1039 intervenciones) el 14/09/2007 15:52:00
Pero ¿cómo vas a saber si ya existe o no si no haces una búsqueda antes?
En tu ejemplo estás agregando el registro, sin más comparaciones. Te repito, antes deberías hacer una búsqueda para verificar si ya existe o no.
Si el registro no existe sí lo agregas (AddNew), pero si ya existe, tal vez quieras actualizarlo (Usarías .Edit, en vez de .AddNew, porque veo que usas DAO).
¿Cómo harías la búsqueda? Pues eso depende si tu tabla tiene o no un índice.

Una pregunta ¿Te da error al guardar el nuevo registro? (esto sucedería si tienes un índice con llave primaria -irrepetible-)
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

RE:Guardar

Publicado por GRIS (48 intervenciones) el 14/09/2007 16:10:38
Exactamente no me muestra un error, lo que hace simplemente es guardar el registro en la tabla, pero como tengo un informe ligado a esa tabla, me duplica los registros (es logico ya que duplicará la información según los registros que encuentre en la tabla, o no??), no tengo llave primaria, crees que es indispensable ????, para agregarla, me podrías decir como hacer la comparación ???...

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

Tampoco!!

Publicado por P.J. (173 intervenciones) el 14/09/2007 16:11:46
Aunque su tabla tuviera un índice, no le serviría de nada para hacer una búsqueda, ya que no está escribiendo un índice sino Nombre, Apellido y Fecha. En todo caso tendría que hacer una búsqueda por nombre+apellido+fecha.

Y para el código presentado:
Primero declara una variable a la que no le asigna ningún objeto (o valor), después asigna un objeto a una variable no declarada y por fin intenta asignar propiedades a la variable sin objeto.
y... Texto52 ¿Cuántos TextBox tiene en el formulario?.. porque supongo que texto52 es el nombre dado a un control TextBox, ¿o no?.
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

Cansate Alex

Publicado por P. J. - ORIGINAL (7 intervenciones) el 14/09/2007 16:13:37
Bueno claramente resalta que ese msj. no es mio. JODETE ALEX!
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

Está claro que NO!

Publicado por Alex (53 intervenciones) el 14/09/2007 16:18:54
El mensaje no puede ser tuyo porque tu capacidad mental no llega para tanto.
Y si puedes, aporta algo.
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

RE:Guardar

Publicado por Carlos (125 intervenciones) el 14/09/2007 22:42:50
Bueno a ver si entendi, 1 quieres guardar un registro nuevo... ya lo sabes

Quieres editar un registro exitente, bueno primero has la busqueda ese registro y luego midifcalo como:

Dim ensamble1 As DAO.Recordset
Set Lista = CurrentDb.OpenRecordset("Alumno", dbOpenDynaset)

With ensamble1
.Fields("Nombre") = Texto52
.Fields("Apellido") = Texto48
.Fields("Fecha") = Texto45
.Update
End With
end Sub

ahora lo que entiendo es que esta es una tabla relacion, no posee un campoclave, ahora bien este tipo de tablas estan conectadas a 2 para que la relacion pueda ser de muchos a muchos, esta tabla nunca (hen mi caso) se modifica solo se agraga y se elimina... ok! claro que si este no es tu caso se un poco mas especifico
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

¿¿¿¿¿¿???????

Publicado por Alex (53 intervenciones) el 14/09/2007 23:11:07
¿¿¿Qué pendejas dices???
("hen" tu caso, ¿¡con "h"!?, ¡ay caramba!)
¿Entiendes lo que escribiste?
¿Ahora quién es el que "conterta" estupideces?
Tú mejor limítate a no contestar. Hemos visto las preguntas que haces (muy tontas y simples, la verdad) y ahora hasta resultaste maestro: "aclarando" dudas y "ayudando" a otros.
En fin ...
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

RE:¿¿¿¿¿¿???????

Publicado por perico (2 intervenciones) el 14/09/2007 23:21:15
Hola alex me parece bien que corrijas a los usuario, aunque la respuesta de carlos me ayudo algo,

Gracias,
Alex me puedes ayudar con unos cursos de ortografica que tengo por alli y de paso me jalas la tripa. 8========D
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

RE:¿¿¿¿¿¿???????

Publicado por Alex (53 intervenciones) el 15/09/2007 00:07:27
Hola carlos agradesco que valores mi ayuda en este foro aunque la respuesta de perico se que te ayudo algo.

Carlos te puedo ayudar en tu ortografica aunque no soy un experto en eso, los hay mejores por aqui. pero si insistes... con un par de pajas quedo contento..

----> -(
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

RE:Guardar

Publicado por niwdeloko (53 intervenciones) el 17/09/2007 14:59:27
lo que puedes hacer linda. es:
verificarlo por el id en tu tabla supongo que es uniko (:)) --)
y verifiques antes de guardar cada dato: hacerte una funcion
private function siexiste(tabla as string, campoid as integer, idnuevo as integer) as boolean
Dim ensamble1 As DAO.Recordset
Set Lista = CurrentDb.OpenRecordset("tabla", dbOpenDynaset)
lista.findfirts tabla.fields(campoid) = "" & idnuevo & ""
if lista.recordcount >= 1 then
siexiste=true
else
siexiste=false
endif
end function

algo asi espero ayudarte
saludos
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