SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Bases de Datos => Mensaje iniciado por: mikichu en Viernes 8 de Mayo de 2009, 16:48

Título: Insertar Datos a dos Tablas a la ves
Publicado por: mikichu en Viernes 8 de Mayo de 2009, 16:48
hola a todos tengo un full problema y no se como solucionarlo.
El tema es que tengo 2 tablas una llamada Persona(Id, Nombre, Apellido,CI,Domicilio) y otra Paciente(Id,edad,Procedencia, Ocupacion, Estado_Civil).
El punto es que al momento de LLenar la tabla Persona me llene tambien la Tabla Paciente Con el Id de la Persona.
Las tablas si o si tenen que ser separadas puesto que se trata de una generalización.
Tengo un formulario general para la introduccion de estos datos.
Si me pueden dar otra forma de hacer esto seria genial.

La Base de Datos esta en Acces
y trate de hacerlo de la siguiente manera:
Private mobjConn                As ADODB.Connection
Private mobjConn1               As ADODB.Connection
Private mobjCmd                 As ADODB.Command
Private mobjCmd1                 As ADODB.Command

  Dim strSQL          As String
  Dim strSQL1         As String

 strSQL = "INSERT INTO PERSONA(  ID"
        strSQL = strSQL & "            , Nombre"
        strSQL = strSQL & "            , Apellido"
        strSQL = strSQL & "            , CI"
        strSQL = strSQL & "            , Domicilio"
        strSQL = strSQL & "         ) VALUES ("
        strSQL = strSQL & lngIDField
        strSQL = strSQL & ", '" & Replace$(txtNombre.Text, "'", "''") & "'"
        strSQL = strSQL & ", '" & Replace$(txtApellido.Text, "'", "''") & "'"
        strSQL = strSQL & ", '" & Replace$(txtCI.Text, "'", "''") & "'"
        strSQL = strSQL & ", '" & Replace$(txtDomicilio.Text, "'", "''") & "'"
        strSQL = strSQL & ")"
       
        strSQL1 = "INSERT INTO INTERESADO(  ID"
        strSQL1 = strSQL & "            , Telefono"
        strSQL1 = strSQL & "         ) VALUES ("
        strSQL1 = strSQL & lngIDField
        strSQL1 = strSQL & ", '" & Replace$(txtTelefono.Text, "'", "''") & "'"
        strSQL1 = strSQL & ")"
   
    mobjCmd.CommandText = strSQL
    mobjCmd.Execute
    mobjCmd1.CommandText = strSQL1
    mobjCmd1.Execute
Espero que puedan ayudarme bueno bye. y gracias de antemano jejej
Título: Re: Insertar Datos a dos Tablas a la vez
Publicado por: F_Tanori en Sábado 9 de Mayo de 2009, 18:09
No entiendo que hay con ese codigo, no te funciona ? te da algun error?

ya haz logrado conectarte a la base de datos? (creo que por ahi va el problema)

Revisa este hilo

viewtopic.php?f=56&t=23439&p=82372 (http://foros.solocodigo.com/viewtopic.php?f=56&t=23439&p=82372" onclick="window.open(this.href);return false;)

Una vez conectado (lo principal), podras hacer eso de muchas maneras y sin problemas

Saludos
Título: Re: Insertar Datos a dos Tablas a la ves
Publicado por: m0skit0 en Lunes 11 de Mayo de 2009, 09:54
Revisa esto: viewtopic.php?f=141&t=38709 (http://foros.solocodigo.com/viewtopic.php?f=141&t=38709" onclick="window.open(this.href);return false;)
Título: Re: Insertar Datos a dos Tablas a la ves
Publicado por: mikichu en Miércoles 13 de Mayo de 2009, 21:08
Me conecto bien a la Base de Datos incluso puedo realizar insersion actualizacion eliminacion en una tabla pero lo que yo quiero es hacer lo mismo pero en dos tablas al mismo tiempo es decir manipular varias tablas en una consulta. sera que se puede o tengo que hacerlo de otra manera
OTRA VES MI PROBLEMA NO ES DE CONEXION A LA BASE DE DATOS POR ESE LADO TODO VA BIEN
Bueno de todos modos Gracias por responder.
Título: Re: Insertar Datos a dos Tablas a la ves
Publicado por: m0skit0 en Jueves 14 de Mayo de 2009, 09:50
Cita de: "mikichu"
hacer lo mismo pero en dos tablas al mismo tiempo es decir manipular varias tablas en una consulta
Eso lo puedes hacer en la misma sentencia SQL si le especificas las tablas, a menos que sean 2 conexiones diferentes. En tal caso que yo sepa sólo lo puedes hacer tal y como has puesto.
Título: Re: Insertar Datos a dos Tablas a la ves
Publicado por: seba123neo en Lunes 1 de Junio de 2009, 02:46
Hola, para que 2 conexiones y 2 comandos ? con uno solo es suficiete...aparte el error es que estas mezclando las variables strSQL y strSQL1...

saludos.
Título: Re: Insertar Datos a dos Tablas a la ves
Publicado por: mikichu en Martes 2 de Junio de 2009, 00:23
Bueno Gracias a todos por su ayuda pero al fin pude hacer lo que queria les dejo el codigo p que lo chequeenn
Des pues de insertar en una tabla borro la variable de consulta strSQL y la vuelvo a llenar para ejecutar otra consulta
todo utiliza la misma conecionn
 Private mobjConn                As ADODB.Connection
Private mobjCmd                 As ADODB.Command
Private mobjRst                 As ADODB.Recordset


 If mstrMaintMode = "ADD" Then
strSQL = "INSERT INTO INTERESADO(  ID"
        strSQL = strSQL & "            , Telefono"
        strSQL = strSQL & "         ) VALUES ("
        strSQL = strSQL & lngIDField
        strSQL = strSQL & ", '" & Replace$(txtTelefono.Text, "'", "''") & "'"
        strSQL = strSQL & ")"
   Else
        lngIDField = CLng(lvPersona_Interesado.SelectedItem)
       
        strSQL = "UPDATE INTERESADO SET "
        strSQL = strSQL & "  Telefono   = '" & Replace$(txtTelefono.Text, "'", "''") & "'"
        strSQL = strSQL & " WHERE ID = " & lngIDField
    End If
    mobjCmd.CommandText = strSQL
    mobjCmd.Execute
     strSQL = " "
   
    If mstrMaintMode = "ADD" Then
   
        'lngIDField = GetNextCustID()
       
        strSQL = "INSERT INTO PERSONA(  ID"
        strSQL = strSQL & "            , Nombre"
        strSQL = strSQL & "            , Apellido"
        strSQL = strSQL & "            , CI"
        strSQL = strSQL & "            , Domicilio"
        strSQL = strSQL & "         ) VALUES ("
        strSQL = strSQL & lngIDField
        strSQL = strSQL & ", '" & Replace$(txtNombre.Text, "'", "''") & "'"
        strSQL = strSQL & ", '" & Replace$(txtApellido.Text, "'", "''") & "'"
        strSQL = strSQL & ", '" & Replace$(txtCI.Text, "'", "''") & "'"
        strSQL = strSQL & ", '" & Replace$(txtDomicilio.Text, "'", "''") & "'"
        strSQL = strSQL & ")"  
   
    Else
        'lngIDField = CLng(lvPersona_Interesado.SelectedItem)
       
        strSQL = "UPDATE PERSONA SET "
        strSQL = strSQL & "  Nombre   = '" & Replace$(txtNombre.Text, "'", "''") & "'"
        strSQL = strSQL & ", Apellido    = '" & Replace$(txtApellido.Text, "'", "''") & "'"
        strSQL = strSQL & ", CI  = '" & Replace$(txtCI.Text, "'", "''") & "'"
        strSQL = strSQL & ", Domicilio  = '" & Replace$(txtDomicilio.Text, "'", "''") & "'"
        strSQL = strSQL & " WHERE ID = " & lngIDField
       
        strSQL = "UPDATE INTERESADO SET "
        strSQL = strSQL & "  Telefono   = '" & Replace$(txtTelefono.Text, "'", "''") & "'"
        strSQL = strSQL & " WHERE ID = " & lngIDField
 
    End If
   
    mobjCmd.CommandText = strSQL
    mobjCmd.Execute