• Viernes 8 de Noviembre de 2024, 15:58

Autor Tema:  Insertar Datos a dos Tablas a la ves  (Leído 11772 veces)

mikichu

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Insertar Datos a dos Tablas a la ves
« en: Viernes 8 de Mayo de 2009, 16:48 »
0
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

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Insertar Datos a dos Tablas a la vez
« Respuesta #1 en: Sábado 9 de Mayo de 2009, 18:09 »
0
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

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

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Insertar Datos a dos Tablas a la ves
« Respuesta #2 en: Lunes 11 de Mayo de 2009, 09:54 »
0

mikichu

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Insertar Datos a dos Tablas a la ves
« Respuesta #3 en: Miércoles 13 de Mayo de 2009, 21:08 »
0
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.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Insertar Datos a dos Tablas a la ves
« Respuesta #4 en: Jueves 14 de Mayo de 2009, 09:50 »
0
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.

seba123neo

  • Miembro activo
  • **
  • Mensajes: 36
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.neovisualbasic.com.ar/
Re: Insertar Datos a dos Tablas a la ves
« Respuesta #5 en: Lunes 1 de Junio de 2009, 02:46 »
0
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.
Todos somos ignorantes;lo que pasa es que no todos ignoramos las mismas cosas - Albert Einstein

mikichu

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Insertar Datos a dos Tablas a la ves
« Respuesta #6 en: Martes 2 de Junio de 2009, 00:23 »
0
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