Programación General => Visual Basic 6.0 e inferiores => Bases de Datos => Mensaje iniciado por: ylodis en Viernes 24 de Abril de 2009, 22:36
Título: VB6 y Acces2002. Definir tabla a leer en VB6; Error 13
Publicado por: ylodis en Viernes 24 de Abril de 2009, 22:36
Hola,
Intento crear un subprograma que al pulsar un botón cree una copia de una tabla leyendo todos los registros de la 1º y a la vez vaya grabando en la 2ª. Cuando llego a la instrucción en rojo, al intendar definir la 1ª Tabla tengo un "error '13' en tiempo de ejecucion : No coinciden los tipos ". Aclaro que soy novato en VB6 y el puede que el problema sea muy básico.
Private Sub Command3_Click() Dim BDD As Database 'Objeto para manejar la base de datos Dim TB1 As Recordset 'Objeto para manejar la Tabla Dim TB2 As Recordset 'Objeto para manejar la Tabla Set BDD = OpenDatabase("D:Mis documentosMisProgBases de Datosbd1.mdb") 'Abre la base de datos Dim SQL As String 'Declarar una variable para almacenar sentencia SQL
SQL = "SELECT * FROM datos" Set TB1 = BDD.OpenRecordset(SQL) 'Define Tabla 1
SQL = "SELECT * FROM datosCopia" Set TB2 = BDD.OpenRecordset(SQL) 'Define Tabla 1
TBL.MoveFirst 'nos posicionamos en el primer registro de la tabla Do Until TB1.EOF SQL = "INSERT INTO datosCopia (nombre,nif,direccion,telefono,cp,poblacion) VALUES(datos.nombre,datos.nif,datos.direccion,dato s.telefono,datos.cp,datos.poblacion)" TB1.MoveNext 'leer siguiente Loop
TBL.Close 'cierra tabla BDD.Close 'cierra base de datos End Sub
Título: Re: VB6 y Acces2002. Definir tabla a leer en VB6; Error 13
Publicado por: cpmario en Sábado 25 de Abril de 2009, 21:46
Lo que significa el error 13 es que estás tratando de usar una variable de forma incorrecta. Por ejemplo: una variable númerica por una de texto. Efectúe un copy-paste a una forma en VB y lo primero que noto es que tienes 2 variables no declaradas:
Código: Text
TBL.MoveFirst 'nos posicionamos en el primer registro de la tabla
Código: Text
TBL.Close 'cierra tabla
Supongo que debe ser TB1 en lugar de TBL
Eso es probable por que no tengas el Option Explicit en la primera línea de la forma. Te sugiero la coloques y revises de nuevo el programa ejecutándolo para que veas que errores te marca.