Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125

    Registrazione ID di tab1 in tab2

    Ciao al forum.

    Ho due tabelle di un db access; in entrambe le tabelle eseguo con due query differenti l'inserimento di tutti i dati nella prima tabella ed una parte dei dati nella seconda tabella.

    Avrei necessità di passare nella seconda tabella anche l'ID del record inserito nella prima tabella.

    Nella seconda tabella ho previsto un campo numerico che ho chiamato IDTab1, ma non so come fare a registrargli l'ID del record inserito nella prima tabella.

    Avete suggerimenti?

    Grazie

  2. #2
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    un esempio spicciolo (conn è un oggetto connection aperto)

    codice:
    'lascia aperta la connessione fino alla fine altrimenti 'identity si perde
    '.....
    conn.execute("Insert into TAB1 ..... bla bla bla")
    'recuperi l'id appena inserito
    set rs = conn.execute("Select @@identity  from TAB1")
    if not rs.eof then idInserito = rs(0)
    'lo inserisci nella TAB2
    conn.execute("Insert into TAB2(IDTab1) values ("& idInserito  & ")")
    le query sono tirate via, quella di @@identity basta che tu cambi il nome tabella e va bene cosi'

  3. #3
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Scusa ma così inserisce l'IDTab1 in nuovi records; cioè mi registra tutti i dati in tab1 e tab2 e poi mi aggiunge due record a tab2 con i valori dell'IDtab1...

    Questo è il codice che devo integrare:
    codice:
    arrPer = Split(strPERSONALE,", ")
    for i = LBound(arrPer) to UBound(arrPer)
      arr = Split(arrPer(i),"-")
      sql = "INSERT INTO TAB2 (...) VALUES (...)"
    next
    
    stringa = strPERSONALE
    arrStringa = split(stringa,", ")
    for x = 0 to uBound(arrStringa)
    if inStr(arrStringa(x),"-") > 0 then
    tempArr = split(arrStringa(x),"-")
    tempStringa = tempStringa & tempArr(1)
    if x < uBound(arrStringa) then tempStringa = tempStringa & ", "
    end if
    Next
    
    for i = 0 to datediff("d",cDate(strDUEDATE),cDate(strDUEDATE2)) step 1
     strSql = "INSERT INTO TAB1 (...) values (...)"
     cn.execute strSql
    next

  4. #4
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    up

  5. #5
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    spiegati meglio che vuoi fare?
    Li vedo che fai due volte lo stesso passaggio dello split, non puoi fare tutto in una volta? Cmq non ho capito bene l'algoritmo

  6. #6
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Originariamente inviato da kluster
    spiegati meglio che vuoi fare?
    Li vedo che fai due volte lo stesso passaggio dello split, non puoi fare tutto in una volta? Cmq non ho capito bene l'algoritmo
    Il passaggio dello split è eseguito due volte perchè i dati si caricano su due tabelle in maniera diversa:

    -nella tab1 si caricano così in un unico record: pippo, caio, sempronio;
    -nella tab2 si caricano invece creando tre singoli records: uno per pippo, uno per caio e uno per sempronio.


    Adesso il problema è che dalla tab1 devo prendere l'ID del record che comprende pippo, caio e sempronio e passarlo alla tab2 nel campo IDTab1 per ciascuno dei tre singoli records: uno per pippo, uno per caio e uno per sempronio.

    Mi spiego?

  7. #7
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    up

  8. #8
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    mah diciamo che non mi torna tanto quello che dici con il codice che hai postato cmq se vedi cosa ti ho postato riguardo a select @@indentity dovresti per ogni inserimento tirarti fuori l'id inserito e poi , o lo metti un array o lo accodi ad una stringa
    Dopo alla fine vai ad inserire la stringa accodata o il Join(tuoarray,",") nel campo IDTab1

  9. #9
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    ho difficoltà a seguirti... qualche riga di codice per esempio?

  10. #10
    Utente di HTML.it L'avatar di kluster
    Registrato dal
    Jul 2003
    Messaggi
    1,288
    qualcosa del genere ( è approssimativo)

    codice:
    arrPer = Split(strPERSONALE,", ")
    Dim stringID,rsTmp
    for i = LBound(arrPer) to UBound(arrPer)
      arr = Split(arrPer(i),"-")
      sql = "INSERT INTO TAB2 (...) VALUES (...)"
      set rsTmp = conn.execute("select @@identity from TAB2")
      stringID = stringID & "," & rsTmp(0)
     
    next
    'alla fine del loop avrai qualcosa del tipo
    ,1,2,3,4,5,6
    stringID = mid(stringID,2) 'levo la prima virgola
    e poi stringID lo metti in IdTab1

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.