Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

[ACCESS 2007] Creazione tabella dopo applicazione FILTRO

  1. #1
    monello non  in linea Scribacchino
    Post
    1,168
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao a tutti e buona Domenica , una domanda :

    possibile dopo aver applicato un filtro su maschera creare una tabella con i soli record filtrati ?

    Io ci sto provando ma non ci sono riuscito e posto il codice che ho scritto :

    Private Sub Form_Filter(Cancel As Integer, FilterType As Integer)

    DoCmd.RunSQL "SELECT * INTO tabric FROM [Tabella]"

    End Sub
    Qualche idea ?
    ℹ️ Leggi di pi su monello ...

  2. #2
    L'avatar di @Alex
    @Alex non  in linea Moderatore Globale
    Post
    16,800
    Like Inviati  
    0
    Like Ricevuti  
    23
    Mi piacerebbe vedere i tentativi che hai fatto... magari erano di aiuto a capire l'errore...
    SELECT *
    INTO Dest_Table
    FROM Source_Table
    WHERE Id=5
    
    ℹ️ Leggi di pi su @Alex ...

  3. #3
    monello non  in linea Scribacchino
    Post
    1,168
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ti ringrazio Alex ho provato la sintassi della query creazione tabella =

    "SELECT * INTO nuovatabella FROM tabella WHERE nomecampo=forms![maschera].[nomecampo];"
    In pratica filtro in base a maschera , vengono restituiti dei records e poi viene creata una nuova tabella in base a questi records ma
    non ci sono riuscito.
    ℹ️ Leggi di pi su monello ...

  4. #4
    L'avatar di Tommy_G
    Tommy_G non  in linea Scribacchino
    Post
    1,011
    Like Inviati  
    0
    Like Ricevuti  
    0
    per fare un bel lavoro sarebbe meglio se ti costruissi un set di filtri con una query dinamica tramite la quale successivamente popolare la tua tabella con una "select into" cos come suggerito da alex.
    in alternativa (ma sconsigliato se la mole dati molto elevata) puoi:
    1 - prepararti una tabella da svuotare e riempire alla bisogna (la chiameremo "Dati_Esportati")
    2 - popoli la succitata tabella con "add new" estraendo preventivamente il recordset della maschera filtrata


    Dim rs As DAO.Recordset
    Dim rsF As DAO.Recordset

    ' svuoti la tabella prima di inserire i nuovi dati filtrati
    CurrentDb.Execute "Delete * From Dati_Esportati"""
    Set rs = CurrentDb.OpenRecordset("Dati_Esportati")
    Set rsF = Me.Recordset.Clone
    rsF.MoveFirst
    Do Until rsF.EOF
    ' popoli la tabela con il recordset clone della maschera
    rs.AddNew
    rs.Fields("campo1").Value = rsF.Fields("campo1").Value
    rs.Fields("campo2").Value = rsF.Fields("campo2").Value
    'rs.Fields("campo3)...eccetera
    rs.Update
    rsF.MoveNext

    Loop

    rs.Close
    rsF.Close
    Set rs = Nothing
    Set rsF = Nothing


    ...ribadisco che in caso di un notevole mole di dati a questo sistema preferibile l'opzione della query dinamica (querydef)
    espressione.CreateQueryDef(Name, SQLText)
    

  5. #5
    monello non  in linea Scribacchino
    Post
    1,168
    Like Inviati  
    0
    Like Ricevuti  
    0
    Prover il tuo suggerimento Tommy , il secondo , in effetti non sono tanti dati da gestire ... ho imparato una cosa nuova e ti ringrazio cos come ho fatto con Alex , prezioso come sempre

    Ho provato la tua sintassi ma mi d errore sulla seguente riga :

    rs.Fields("Cognome_Nome").Value = rsF.Fields("Cognome_Nome").Value
    Cambiandola in :

    rs.Fields("Cognome_Nome").Value = Me.Cognome_Nome.Value
    funziona correttamente ...
    Ultima modifica di monello; 05-05-2013 20:18 
    ℹ️ Leggi di pi su monello ...

  6. #6
    L'avatar di Tommy_G
    Tommy_G non  in linea Scribacchino
    Post
    1,011
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    Mi piacerebbe vedere i tentativi che hai fatto...
    ...anche a me -.-

  7. #7
    monello non  in linea Scribacchino
    Post
    1,168
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ragazzi l'unico tentativo che ho fatto l'ho postato all'inizio (post #3) , mettendo la sintassi sql per la creazione tabella e basta ed ovviamente non funziona , se non si fa quanto suggerito da Tomy che ringrazio ancora !

    "SELECT * INTO nuovatabella FROM tabella WHERE nomecampo=forms![maschera].[nomecampo];"
    ℹ️ Leggi di pi su monello ...

  8. #8
    L'avatar di @Alex
    @Alex non  in linea Moderatore Globale
    Post
    16,800
    Like Inviati  
    0
    Like Ricevuti  
    23
    Quote Originariamente inviato da monello Visualizza il messaggio
    Ragazzi l'unico tentativo che ho fatto l'ho postato all'inizio (post #3) , mettendo la sintassi sql per la creazione tabella e basta ed ovviamente non funziona , se non si fa quanto suggerito da Tomy che ringrazio ancora !
    Direi che non giusto inglobare nel predicato SQL il riferimento al FORM, ed difficile che possa funzionare in quanto risulta impossibile RISOLVERE il riferimento ad oggetti del CLIENT...
    forms![maschera].[nomecampo]
    
    Avresti ottenuto risultato diverso usando una sintassi corretta:
    "SELECT * INTO nuovatabella FROM tabella WHERE nomecampo=" & Me![nomecampo]
    
    oppure se in una form ESTERNA:
    "SELECT * INTO nuovatabella FROM tabella WHERE nomecampo=" & forms![maschera].[nomecampo]
    
    se poi il Campo [nomecampo] dovesse essere TESTO e non NUMERICO, servono gli APICETTI.
    ℹ️ Leggi di pi su @Alex ...

  9. #9
    monello non  in linea Scribacchino
    Post
    1,168
    Like Inviati  
    0
    Like Ricevuti  
    0
    Non si finisce mai d'imparare Alex ... grazie per la precisazione puntuale e professionale che metter in atto domani !
    ℹ️ Leggi di pi su monello ...

  10. #10
    L'avatar di Tommy_G
    Tommy_G non  in linea Scribacchino
    Post
    1,011
    Like Inviati  
    0
    Like Ricevuti  
    0
    scusa, sar sicurametne un po' duro di comprendoio ma non capisco
    posso sapere come hai contestualizzato questa stringa di codice che dici essere funzionante:
    Quote Originariamente inviato da monello Visualizza il messaggio
    rs.Fields("Cognome_Nome").Value = Me.Cognome_Nome.Value
    
    funziona correttamente ...
    in poche parole, si pu sapere che hai usato per riversare i dati dalla form nella tabella che nel mio esempio ipotizzavo si chiamasse "dati_esportati"?

    ...per "cosa hai usato" intendo il codice completo, cio, qualcosa che assomigli alle 23 righe di codice che ti ho postato nel mio esempio, questo perch nel contesto generale la stringa che hai postato tu non possibile che possa funzionare in quanto priva del "recordsetclone"...

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. Risposte: 1
    Ultimo Post: 28-03-2017, 16:23
  2. Creare una maschera Filtro in access 2007
    Da Pierza91 nel forum Microsoft Access
    Risposte: 19
    Ultimo Post: 21-05-2014, 20:35
  3. access 2007: maschera divisa con filtro
    Da serbring nel forum Microsoft Access
    Risposte: 14
    Ultimo Post: 19-04-2010, 17:01
  4. [Access 2007]filtro per data
    Da Uccio87 nel forum Microsoft Access
    Risposte: 4
    Ultimo Post: 15-04-2010, 09:01
  5. Access - Problema di logica per applicazione di un filtro
    Da Mathotbla nel forum Microsoft Access
    Risposte: 6
    Ultimo Post: 03-11-2009, 09:41