Visual Basic - Sin solucion, Ayuda!!

Life is soft - evento anual de software empresarial
 
Vista:

Sin solucion, Ayuda!!

Publicado por clater (25 intervenciones) el 22/07/2007 22:19:51
Hola a todos, ya tengo unos di con este problema y no consigo solucion ni nadie que me ayude, espero que con este post detallado alguien pueda ayudarme. Quiero manejar una base de datos con DAO (alguien por ahi me sugirio ADO, pero no se..)Lo que pasa es que, despues de haber hecho las debidas declaraciones, tengo lo siguiente:

Private Sub Command1_Click()


record1.AddNew
record1!Numero_Personas = txtnpers.Text
record1!Nombre_Grupo = txtgrupo.Text
record1!Dias_Estancia = txtndias.Text
record1!Dormitorio = txtdormi.Text
record1!Habitaciones_Ocupadas = txthabso.Text

If chkcap.Value = 1 Then
record1!Capilla = "Si"
End If

If chksalon.Value = 1 Then
record1!Salon = "Si"
End If

If chkverdes.Value = 1 Then
record1!Areas_Verdes = "Si"
End If

If chkcanchas.Value = 1 Then
record1!Canchas = "Si"
End If

If chkcomedor.Value = 1 Then
record1!Comedor = "Si"
End If

If chkacomedor.Value = 1 Then
record1!Antecomedor = "Si"
End If

record1!Turnos = txtturnos.Text
record1!Personas = txtpersonal.Text
record1!Alimentos_Persona = txtper.Text
record1!Alimentos_Total = txtnpers.Text * txtper.Text
record1!Total_Personal = txtperev.Text
record1!Total_Alimentos = txtalim.Text
record1!Egresos = txtalim.Text + txtperev.Text
txtegreso.Text = txtalim.Text + txtperev.Text

record1.Update


End Sub

El problema 1 es que cuando corri el programa me marco Error 3421:"Error de conversion de tipo de datos." y al depurar me marcaba la primera linea ( record1!Numero_Personas = txtnpers.Text), la borre y cada que ejecutaba me seguia marcando lineas, total que temine borrando todas las que marcaba y al final solo me acepto la de Nombre_Grupo y todo lo q esta en el if end if,
tendra que ver el nombre de los campos con el guion bajo o k podra ser???

El segundo problema fue que con los unicos campos que me quede efectivamente si metia datos a la base pero en desorden completamente.
La tabla tiene como primer campo "Indice", el cual esta indexado, sin duplicados y en autonumerico, antes de meter datos con el programa estaba del (1) al (10), y a la hora de meter datos con el programa me los mete a partir del (11), (12) y asi sucesivamente...
Como le hago para que me los vaya metiendo en orden???

Incluso intente con este codigo

Private Sub Command1_Click()
With record1
.AddNew

.Fields("Nombre_Grupo") = txtgrupo.Text

.Fields("Dormitorio") = txtdormi.Text
.Fields("Habitaciones_Ocupadas") = txthabso.Text

If chkcap.Value = 1 Then
.Fields("Capilla") = "Si"
End If

If chksalon.Value = 1 Then
.Fields("Salon") = "Si"
End If

If chkverdes.Value = 1 Then
.Fields("Areas_Verdes") = "Si"
End If

If chkcanchas.Value = 1 Then
.Fields("Canchas") = "Si"
End If

If chkcomedor.Value = 1 Then
.Fields("Comedor") = "Si"
End If

If chkacomedor.Value = 1 Then
.Fields("Antecomedor") = "Si"
End If

.Fields("Turnos") = txtturnos.Text
.Fields("Personas") = txtpersonal.Text
.Fields("Alimentos_Persona") = txtper.Text
.Fields("Alimentos_Total") = txtnpers.Text * txtper.Text
.Fields("Total_Personal") = txtperev.Text
.Fields("Total_Alimentos") = txtalim.Text
.Fields("Egresos") = txtalim.Text + txtperev.Text
txtegreso.Text = txtalim.Text + txtperev.Text

record1.Update

end sub

y segui con los mismos problemas, ojala alguien pueda identificar el origen del problema y echarme una manoo, de verdad que no encuentro la falla y llevo dias asi.
Muchas gracias de antemano
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:NO HAY NADA SIN SOLUCION!

Publicado por clater (25 intervenciones) el 22/07/2007 22:57:12
Gracias por tu respuesta, creo, entonces, que me conviene mas el ADO, pero aun asi me gustaria saber como meter la funcion val que mencionas

Gracias nuevamente
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:NO HAY NADA SIN SOLUCION!

Publicado por Walter Rueda (49 intervenciones) el 23/07/2007 00:30:48
Hola te sugiero primero que nada que pases los valores de los textbox a una variable y recuerda definir la variable con el tipo de datos que la tienes definida en tu base de datos asi no te generara error de conversion de tipos, sera mas facil trabajar las operaciones aritmeticas con las variables una vez le pases los valores, recuerda al terminar de usarlas resetearlas para que no arrastren valor salu2 espero te haya ayudado

Dim Dato as Integer
Dim Dato2 as iteger

Dato=textbox1.text
Dato2=Textbox2.text

record1!Dato=(Dato*Dato1)

Espero te sirva Salu2.
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:(Walter Rueda)

Publicado por clater (25 intervenciones) el 23/07/2007 00:47:56
Hola Walter, gracias por tu respuesta, ya logre solucionar el problema de la conversion de datos con la funcion Val, como dijo "nuevo" (gracias "nuevo" te debo una), funciona perfecto, ahora el problema esque no logro que los datos se metan a partir del (1) que tengo en el autonumerico de la base, tendra que ver el metodo .movefirst??
Si se te ocurre algo, me ayudarias muchisimo,
Gracias de nuevo

p.d: Podriamos hablar en lina, por msn o 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