Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [vb.net] Tabelle Access in Relazione

    Ciao a tutti, sto impazzendo nella realizzazione di un piccolo progetto in VB.net per gestire una rubrica abbastanza articolata!
    L'abbastanza è poi per me, infatti credo sia semplice per tutti, escluso ovviamente me!!!

    Ho realizzato un database access nel quale ci sono tre tabelle, chiamiamo A, B, C
    Tra A e B c'è una relazione Uno-a-uno tra B e C uno-a-Molti e tra A e C Nessuna Relazione diretta!

    Mi sapreste indicare dove posso trovare un esempio di come gestire la programmazione vb per ottenere un corretto inserimento dei dati??
    Infatti il mio problena stà nel fatto che quando inserisco nuovi record nella tabella C in relazione con un nuovo record della tabella B e provo a fare il salvataggio, restituisce errore (scusate l'approsimazione ma vado a memoria: i record della tabella C nn hanno un corrispettivo (o qualcosa del genere) nella Tabella B.
    Quindi per ovviare a questo problema dovrei inserire i dati nella Tabella B, salvare e quindi inserire report nella tabella C. Ma dal momento che un utente inserisce report nn DEVE stare a preoccupasi di salvare ogni 5 secondi...GIUSTO???

    Grazie!!!

  2. #2
    nello specifico dell'Errore risulta:
    "Impossibile aggiungere o modificare il record. Nella Tabella "B" è necessario un record correlato."

    Ho fatto delle prove direttamente nel database access e tutto funziona benissimo!!!
    Mentre nel progetto vb mi da l'errore!!!

  3. #3

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    GIUSTO???
    No, sbagliato.
    Dal momento che hai creato una relazione uno-a-molti (B-a-C) non puoi inserire una riga in C, se non esiste la riga relazionata in B.
    Supponiamo che B contenga le testate delle fatture, mentre C contiene le righe di ogni singola fattura.
    Come puoi inserire righe relative ad una fattura se questa non esiste in B?
    Ovviamente, non solo deve esistere la testata in B, ma nella tabella C devi anche indicarne l'ID relativo in ogni singola riga, altrimenti come si fa a capire a quale record in B appartiene una riga di C?



    Quando tu scrivi
    Ho fatto delle prove direttamente nel database access
    non si capisce cosa tu intenda, perchè anche da VB.NET usi direttamente il database.
    Cosa intendi dire con questa frase?

    Inoltre, non è nemmeno chiaro il perchè tu scriva
    un utente inserisce report
    Come fa un utente ad inserire report ?

  5. #5
    Ero ubriaco dall'auto rincoglion...ento:
    ...un utente inserisce reCorD ...

    Quando tu scrivi

    Citazione:
    Ho fatto delle prove direttamente nel database access
    non si capisce cosa tu intenda, perchè anche da VB.NET usi direttamente il database.
    Cosa intendi dire con questa frase?
    Intendo dire che se apro il Database e scrivo direttamente nelle sue tabelle ovviamente tutto funziona perfettamente!!!

    GIUSTO???
    No, sbagliato.
    Dal momento che hai creato una relazione uno-a-molti (B-a-C) non puoi inserire una riga in C, se non esiste la riga relazionata in B.
    Supponiamo che B contenga le testate delle fatture, mentre C contiene le righe di ogni singola fattura.
    Come puoi inserire righe relative ad una fattura se questa non esiste in B?
    Ovviamente, non solo deve esistere la testata in B, ma nella tabella C devi anche indicarne l'ID relativo in ogni singola riga, altrimenti come si fa a capire a quale record in B appartiene una riga di C?
    Al solito mi spiego malissimo...scusate!
    Teoricamente lo so anche io che per scricere in tabelle collegare da relazioni occorre creare, nella tabella primaria, un record e poi i record nella tabella ad essa relazionata. Ma il fatto è che una persona che usa il mio programmetto deve poter inserire tutti i dati come meglio preferisce senza dover, ogni istante andare a cliccare sul bottone 'Salva' altrimenti tutti i dati della Tabella C nn sono stati memorizzati.
    Infatti poi scorrendo tra record della tabella B, vedo che i dati associati della tabella C, senza un salvataggio ogni volta che mi sposto nella tabella, venno persi.
    La questione adesso è proprio capire quale tipo di programmazione utilizzare per riuscire a fare quello che mi serve!!! Al momento uso i Dataset e DataSource autogenerata dai codici di Visual, ma credo sia poco elastica!!
    E' proprio per questa cosa che chiedo un consiglio!

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Io lascerei perdere tutto quello che viene generato dal wizard di VB.NET, anzi ne starei proprio lontano...

    Devi creare 2 query di INSERT :
    1) la prima inserisce il record nella tabella della testata (B), se non esiste già, ovviamente
    2) poi inserisce i record nella tabella dei dettagli (C)

    Usa il codice: due Command con parametri e lascia perdere il wizard.

    Guarda questo esempio:
    VB2005 OLEDB Demo
    http://www.planet-source-code.com/vb...4586&lngWId=10

    Ciao

  7. #7
    Grazie tantissime...mi sono convinto a snobbare il wizard di visual, ma erano comodiiii!!!

    Mi metto a studiare meglio le connessioni e il trattamento dati!

    grazie del consiglio e del riferimento!

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da lelo
    Grazie tantissime...mi sono convinto a snobbare il wizard di visual, ma erano comodiiii!!!
    Infatti l'hanno creato solo per quello: 'venderti' il prodotto facendoti credere che è comodo, dimenticandosi però di dire che nel mondo reale non serve a niente (questo lo scopri tu da solo, ma DOPO un bel po' che smanetti col prodotto).

    Ciao

  9. #9
    l'esempio che mi hai postato è comodo per la lettura, ma per l'inserimento, l'eliminazione ed il salvataggio no!!!
    La cosa è che mi sono finalmente convinto a crivere tutto ma devo tanto cercare per documentarmi e trovare materiale che mi aiuti!

    Avresti altri link???

  10. #10
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da lelo
    l'esempio che mi hai postato è comodo per la lettura, ma per l'inserimento, l'eliminazione ed il salvataggio no!!!
    Sinceramente non capisco cosa vuoi dire.

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.