Problema: dar de alta un registro en vb 6

Que me surge en vb 6, utilizando una base de datos access 97. El código es el siguiente:
Private Sub Command1_Click()
If Text0 = "" Then
MsgBox "El campo ID es el identificador del nuevo cliente, es obligatorio que complete con valores numericos dicho campo", vbCritical, Me.Caption
Text0.SetFocus
Exit Sub
Else
If Text1 = "" Or Text2 = "" Or Text3 = "" Or Text4 = "" Or Text5 = "" Or Text6 = "" Or Text7 = "" Then
MsgBox "Debe ingresar datos en los campos obligatorios", vbCritical, Me.Caption
MsgBox "Los datos obligatorios son los marcados con asteriscos", vbCritical, Me.Caption
Text0.SetFocus
Exit Sub
Else
If MsgBox("Los datos que ha ingresado son correctos?", vbYesNo, "Grabar Registro") = vbYes Then
Data1.DatabaseName = "C:\clientitos.mdb"
Data1.RecordSource = "clientitos"
Data1.Refresh
With Data1.Recordset
Data1.Recordset.AddNew
Data1.Recordset.Fields!ID = Val(Text0.Text)
Data1.Recordset.Fields!apeynom = Val(Text1.Text)
Data1.Recordset.Fields!direccion = Val(Text2.Text)
Data1.Recordset.Fields!ciudad = Val(Text3.Text)
Data1.Recordset.Fields!provincia = Val(Text4.Text)
Data1.Recordset.Fields!pais = Val(Text5.Text)
Data1.Recordset.Fields!cp = Val(Text6.Text)
Data1.Recordset.Fields!fechadenac = Val(Text7.Text)
Data1.Recordset.Fields!comnombre = Val(Text8.Text)
Data1.Recordset.Fields!comciudad = Val(Text9.Text)
Data1.Recordset.Fields!comprovincia = Val(Text10.Text)
Data1.Recordset.Fields!compais = Val(Text11.Text)
Data1.Recordset.Fields!comcp = Val(Text12.Text)
Data1.Recordset.Fields!telpers = Val(Text13.Text)
Data1.Recordset.Fields!telcom = Val(Text14.Text)
Data1.Recordset.Fields!telcel = Val(Text15.Text)
Data1.Recordset.Fields!fax = Val(Text16.Text)
Data1.Recordset.Fields!mail = Val(Text17.Text)
Data1.Recordset.Fields!marca = Val(Text18.Text)
Data1.Recordset.Fields!modelo = Val(Text19.Text)
Data1.Recordset.Fields!Color = Val(Text20.Text)
Data1.Recordset.Fields!patente = Val(Text22.Text)
'Picture1.Picture = LoadPicture(dlgFile.FileName)
Data1.Recordset.Update
Data1.Recordset.Close
End With
End If
End If
End If
MsgBox "El registro ha sido dado de alta con éxito", vbInformation, Me.Caption
End Sub
Ahora bien, el problema que tengo es que cuando doy de alta el registro en los campos de la base de datos solamente me graba 0 (ceros). Espero puedas ayudarme con este problema que estoy teniendo, ya que yo no le encuentro la vuelta.

1 respuesta

Respuesta
1
Lo que pones "" (entre comillas) es una cadena
dim var as string
var = "pepe" (var tiene asignado pepe)
var = "text1.text" (ya sabes que asigna)
lo debes hacer de la sig. forma
var = text1.text
para eliminar espacios puedes (si quieres) hacer:
var = trim(text1.text)
Ya van 2 preguntas y ninguna puntuada.
VAL convierte una expresión de texto en numero, pero a diferencia del CDBL, o del Cint, no ocurre error cuando la expresión a convertir no tiene la sintaxis de numero; cuando tratas de convertir una expresión no numérica en numero, te devuelve un cero, pero si la expresión si es numérica, te regresara la expresión pero ya de tipo numerioco, entonces a ti los datos de los text*.text te los esta convirtiendo en ceros, pues no son numéricos lo que con ellos captas.
Si quieres usar val, debes tener cuidado con la configuración regional de tu PC, ya que hay un problema con la coma y el punto ("," ".") en separadores de decimales. (En españa en separación de miles, etc.)
Suerte.
Si lo que pretendías con el val, era eliminar espacios, utiliza el
acces.rstVar = trim(text*.text)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas