Errore 3265

di il
5 risposte

Errore 3265

Ciao a tutti,
Nel momento che ho due tabelle A e B relazionate tra loro con un rapporto molti a molti è possibile utilizzare un treeview importando direttamente i dati dalle tabelle oppure devo appoggiarmi ad una query precedentemente salvata?
Ho cercato in rete ma non ho travato nulla riguardo le relazioni molti a molti con i treeview.
Nel mio caso le due tabelle in relazione molti a molti sono Fatture, DDT ed infine c'è la tabella intermedia Fatture_DDT.

Facendo il debug esce l'errore 3265 su Set tempNode.
Praticamente rsD.Fields("DDT.ID_DDT")= non è stato trovato nessun elemento in questa raccolta.
Facendo una banalissima query in access ottengo però la lista che mi interessa.
Nel momento che le tabelle sono 1 a molti non ci sono problemi.
 
 Set rsD = CurrentDb.OpenRecordset("SELECT DDT.ID_DDT, DDT.[N DDT], DDT.InviatoRicevuto, DDT.Data, Fattura_DDT.ID_Fattura FROM DDT INNER JOIN Fattura_DDT ON DDT.ID_DDT = Fattura_DDT.ID_DDT WHERE Fattura_DDT.ID_Fattura = " & rsF.Fields("ID_Fattura") & " ORDER BY DDT.Data ASC", , dbReadOnly)
            Do While Not rsD.EOF
                Set tempNode = tv1.Nodes.Add("FA" & rsF.Fields("ID_Fattura") & "</ID>", tvwchild, "DDT" & rsD.Fields("DDT.ID_DDT") & "</ID>", 	     rsD.Fields("DDT.[N DDT]"))
            rsD.MoveNext
            Loop
            rsD.Close

5 Risposte

  • Re: Errore 3265

    Prova con

    rsD.Fields("ID_DDT")
  • Re: Errore 3265

    Mettendo come tu suggerisci l'errore rimane sempre il medesimo.
    Giusto per curiosità prima avevo provato anche a mettere nell'ultimo argomento di set tempNode rsD.Fields("[N DDT]") per vedere se cambiava qualcosa ed esce l'errore 35602 (key in not unique in the collection) MA ottengo alcuni risultati corretti, NON tutti ma corretti.
    Ordini --> fatture --> ddt funziona a metà.
    A logica se la chiave non è unica non dovrebbe mostrare nulla, no ?

    EDIT: come già dicevo, nel momento che interrogo il DB con query ottengo tutti i risultati corretti
  • Re: Errore 3265

    Quando dici che se fai la query con Access funziona tutto, vuoi mostrarla, a prescindere dal codice?
  • Re: Errore 3265

    oregon ha scritto:


    Quando dici che se fai la query con Access funziona tutto, vuoi mostrarla, a prescindere dal codice?
    Inserisco esattamente la stessa query così evitiamo confusione:
    
    SELECT DDT.ID_DDT, DDT.[N DDT], DDT.InviatoRicevuto, DDT.Data, Fattura_DDT.ID_Fattura
    FROM DDT INNER JOIN Fattura_DDT ON DDT.ID_DDT = Fattura_DDT.ID_DDT
    WHERE (((Fattura_DDT.ID_Fattura)=[Fattura_DDT]![ID_Fattura]))
    ORDER BY DDT.Data;
    
    DDT può essere molti a molti anche con Ordini per via di particolari gestioni burocratiche.
    Replicando il codice su ordini e facendo come sopra trova (Ordini --> ddt) pesca solo alcuni ordini, alcuni e non tutti funzionano.
    Nel momento che uso la query normalmente ottengo ciò che voglio, solo quando dentro la query clicco N DDT ottengo ERRORE DI SINTASSI NELL'ESPRESSIONE DELLA QUERY 'N DDT'. Lo stesso errore lo ottengo nella query che però pesca dalle fatture.
    Al di la di questo Errore, il database gira senza problemi e discrepanze (per ora...vedendo come si sta evolvendo...)
    SELECT DDT.ID_DDT, DDT.[N DDT], DDT.InviatoRicevuto, DDT.Data, Ordini_DDT.ID_Ordini
    FROM DDT INNER JOIN (Ordini INNER JOIN Ordini_DDT ON Ordini.ID_Ordini = Ordini_DDT.ID_Ordini) ON DDT.ID_DDT = Ordini_DDT.ID_DDT;
    
  • Re: Errore 3265

    Problema trovato. Sembra che il treeview non gestisca molti a molti. Nel momento che un DDT fa riferimento a più fatture il sistema entra in crisi. C'è qualche altra alternativa?
Devi accedere o registrarti per scrivere nel forum
5 risposte