Problemas con visual basic

Hola, mira te explico, estoy realizando un programa en Visual Basic 6.0, y base de dato en access, con la conexión a la base de datos no tengo problemas, tampoco para ingresar los datos a una determinada tabla. El problema está en que en Userform he creado un DataGrid, para poder obtener el código de un cliente, y el código de película, para esto en el userform he creado dos cuadros de texto, uno donde se debe ingresar el código del cliente y otro donde se ingresa el código de película. Dentro de cada textbox respectivamente he escrito el siguiente código:
Código cliente
Private Sub CodCli_LostFocus()
If CodCli.Text <> "" Then
TablaClientes.Index = "ClaveCli"
TablaClientes.Seek " = ", Val(CodCli)
If TablaClientes.NoMatch = True Then
MsgBox "Cliente no existe", vbCritical
CodCli.Text = ""
CodCli.SetFocus
End If
End If
End Sub
Codigo pelicula
Private Sub NumPel_LostFocus()
If NumPel.Text <> "" Then
TablaPelículas.Index = "ClavePel"
TablaPelículas.Seek " = ", Val(NumPel)
If TablaPelículas.NoMatch = True Then
MsgBox "Película no existe", vbCritical
NumPel.Text = ""
NumPel.SetFocus
End If
End If
End Sub
Y en el botón Aceptar de mi userform, lo que quiero conseguir es que me envíe esos datos a la tabla arriendos, y también me refleje en el DataGrid tanto el código de cliente, como el de película, y otros datos que son fechas.
Codigo boton aceptar
Private Sub Aceptar_Click()
Dim ISQL As String
If CodCli.Text <> "" And NumPel.Text <> "" Then
ISQL = "SELECT * FROM Arriendos WHERE CodCli = " & Val(CodCli) & " AND NumPel = " & Val(NumPel)
Adodc1.RecordSource = ISQL
Adodc1.Refresh
Else
If CodCli = "" Then CodCli.SetFocus
If NumPel = "" Then
NumPel.SetFocus
End If
End If
End Sub
También he creado la siguiente función para crear el registro de arriendos
Function CreaRegistroArriendos()
TablaArriendos.AddNew
TablaArriendos.Fields("CodCli") = Val(CodCli)
TablaArriendos.Fields("NumPel") = Val(NumPel)
TablaArriendos.Fields("FecAlq") = Date
TablaArriendos.Fields("FecDev") = Date
TablaArriendos.Fields("Recargo") = 0
TablaArriendos.Update
End Function
El problema es que al intentar ingresar un dato en el textbox de código de cliente y código de película, no puedo, ya que al teclarlo me sale el error 3001 "ARGUMENTO NO VÁLIDO"
¿Me podrías explicar a que se debe ese error? Y alguna solución de arreglo.
PD: Con la conexión a la base de datos no tengo problemas.
Bueno, espero me respondas pronto. Gracias

1 respuesta

Respuesta
-1
El problema es que estas enviando un argumento a la función que esta sllamando que no corresponde con la firma de la función, o que no es correcta, por ejemplo la función espera una cadena y le estas enviando un entero.
Revisa por ese lado.
¿Tu dices que tengo que ingresar un carácter? Por que ambos códigos son numéricos, de todas formas si ingreso una letra o palabra igual arroja el mismo error.
¿Y cómo lo arreglo para ingresar números? Por ejemplo 5, 10, etc.
Otra cosa, cuando arroja el error y pongo depurar, me muestra que el error está en la siguiente línea:
TablaClientes.Seek " = ", Val(CodCli)
Precisamente, probablemente la función Seek que estas utolizando no espera un numero ( Val(CodCli) ) [Esto genera o devuelev un nuemro entero], sino que espera es una cadena o string como parámetro.
Pero te dije anteriormente que cuando ingreso una cadena o string, me arroja el mismo error.
No me estás ayudando mucho en realidad, en todas tus respuestas me has respondido algo que yo ya se.
Muy malas respuestas. Como te dije anteriormente me respondiste todas las veces algo que yo ya sabía, y después me das como respuesta una página. ¿Tú crees que si no hubiera buscado antes en internet hubiera venido a preguntar acá?
De verdad que muy mal, a mi parecer pusiste muy poco interés.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas