Sql Server + VB 6.0: Problemas al ejecutar consulta

Estimado amigo. Desde ya agradezco tu participación en el foro.
Te comento mi inconveniente:
Tengo dos tablas relacionadas. Utilizo sql server y VB 6.0
Eh aquí el código en cuestión:
Private Sub cmdGuardaDador_Click()
    Dim ConsultaSql As String
    'Dim IngresaNumDador As String
    Dim IngresaCodDador As String
    Dim X As Integer
        Set Base = New ADODB.Connection
        AbrirBase
        Set rstDadores = New ADODB.Recordset
    ConsultaSql = "INSERT INTO Dadores("
    ConsultaSql = ConsultaSql & "FechaInscDador, "
    ConsultaSql = ConsultaSql & "DomicilioLaboral, "
    ConsultaSql = ConsultaSql & "TelefonoLaboral, "
    ConsultaSql = ConsultaSql & "Grupo, "
    ConsultaSql = ConsultaSql & "Factor, "
    ConsultaSql = ConsultaSql & "Peso "
    ConsultaSql = ConsultaSql & ")values ("
    ConsultaSql = ConsultaSql & SQLText(Format(DTPFInscDador.Value, DDMMYYY)) & ", " 'FechaInscDador
    ConsultaSql = ConsultaSql & SQLText(txtDador(0).Text) & ", " 'DomicilioLaboral
    ConsultaSql = ConsultaSql & SQLText(txtDador(1).Text) & ", " 'TelefonoLaboral
    ConsultaSql = ConsultaSql & SQLText(cmbGrupo.Text) & ", "    'Grupo
    ConsultaSql = ConsultaSql & SQLText(cmbFactor.Text) & ", "   'Factor
    ConsultaSql = ConsultaSql & SQLText(txtDador(2).Text) & ");"  'Peso
    Base.Execute (ConsultaSql)
    Base.Close
    'rstDadores.Close
    Set Base = New ADODB.Connection
    AbrirBase
    Set rstVoluntarios = New ADODB.Recordset
    'If frmGestionVoluntarios.cmbTipoDoc.ListIndex = -1 Then
        'MsgBox "ha de seleccionar algo en el combo"
        'Exit Sub
    'End If
 IngresaCodDador = "Select * from Voluntarios where NumVoluntario = " & frmGestionVoluntarios.txtModVoluntario(0).Text & "" _
**** LA PRIMER LÍNEA DEL SIGUIENTE PÁRRAFO ES LA QUE ME TIRA EL ERROR: ERROR DE COMPILACIÓN: ERROR DE SINTAXIS******
"' And ApeVol LIKE  '%" &  frmGestionVoluntarios.txtModVoluntario(1).Text & "%'" _
"' And NomVol LIKE '%" & frmGestionVoluntarios.txtModVoluntario(2).Text & "%'" _
"' And FNacVol LIKE '%" & frmGestionVoluntarios.DTPFNac.Value & "%'" _
"' And TipoDocumento LIKE   '%" & frmGestionVoluntarios.cmbTipoDoc.ListIndex & "%'" _
"' And NumDocumento LIKE '%" & frmGestionVoluntarios.txtModVoluntario(3).Text &"%'" _
"' And DomicilioParticular LIKE '%" & frmGestionVoluntarios.txtModVoluntario(4).Text &"%'" _
"' And TelefonoParticular LIKE '%" & frmGestionVoluntarios.txtModVoluntario(5).Text &"%'" _
"' And Celular LIKE '%" & frmGestionVoluntarios.txtModVoluntario(6).Text &"%'" _
"' And EMail LIKE '%" & frmGestionVoluntarios.txtModVoluntario(7).Text & "%'" _
"' And Profesion LIKE '%" & frmGestionVoluntarios.txtModVoluntario(8).Text & "%'"
rstVoluntarios.Open IngresaCodDador, Base
If rstVoluntarios.EOF = False Then
    IngresaCodDador = "Insert into Voluntario (NumDador) Values ('" & rstDadores!NumDador & ")"
Base.Execute IngresaCodDador
End If
rstVoluntarios.Close
'frmGestionVoluntarios.txtModVoluntario(0).Text "'"  And NomVol ='" & _
End Sub
Bueno amigo. Te pasé el código completo por las dudas.
Espero puedas darme una mano.
Desde ya muchas gracias!

1 Respuesta

Respuesta
1
Yo intentaría NO pasar consultas. Tienes que desarrollar esas mismas en un procedimiento almacenado y realizar la carga y devolución de datos. Es el procedimiento almacenado el que hace todo el trabajo en la BBDD y la aplicación sólo lanza o recibe los datos necesarios.
OK. Lo único es que no hice nada de procedimientos almacenados además no se como se hace. ¿Me podrás explicar algo de ese tema? Muchas gracias!
Uff. Eso exige una formación exhaustiva y dedicarle un buen tiempo.
La idea es montar la capa de aplicación como presentación de lo que quieres que el usuario haga y como, tras ello, se le presenta como resultados.
El resto, el proceso de consultas se lleva a un procedimiento almacenado que se ejecuta desde la aplicación. Esto funciona cargando al procedimiento de datos en variables del procedimiento. Esas variables se llenan con los datos de la aplicación, del formulario, ejecuta lo que quieres y te devuelve los datos en la parte de la presentación de datos que decidas.
Con eso, es SQL el que realiza todas las tareas y es quien lleva la carga de trabajo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas