Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 14 su 14
  1. #11
    Originariamente inviato da bomberdini
    ok ho capito.

    Non fai prima a creare una volta per tutte la tabella progetto e poi a tirar su una specie di trigger anche se trigger non e'?

    Mi spiego meglio :

    La tabella progetto ce e resta li,

    fai la selezione e dopo aver fatto la selezione da codice fai si che si esegua la query di insert che scrive in progetto.

    Mi sembra molto piu semplice e lineare.
    si ma il problema è che la query di insert che scrive in progetto non la posso fare dato che le due query che mi eseguono la selezione e creano la tabella con la selezione le faccio partire all'interno di un modulo VBA che al click di un bottone le esegue entrambe e dopo averle eseguite rinomina la mia tabella progetto con il numero del progetto cioè 20131 ad esempio che è un numero sequenziale che prende da una casella della maschera, io volevo un modo nella query che capisca che la tabella con quel nome esiste gia e la accodi invece di generarne una nuova che mi va a sovrascrivere la precedente

  2. #12
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Originariamente inviato da ShAdOw WaLkEr
    ........
    e dopo averle eseguite rinomina la mia tabella progetto con il numero del progetto cioè 20131
    .....
    Avevo capito quasi tutto, ma alla fine sono andato in confusione

    _______________________________________________
    Cominciamo a definire quello che abbiamo:
    Abbiamo una tabella di nome "UnioneProduttori"
    Abbiamo una maschera di mome "NuovoProgetto"
    Abbiamo 2 controlli nella maschera di nome "Tipo impianto" e "Produttore"
    ________________________________________________
    adesso definiamo quello che Vogliamo:
    Filtrare la tabella "UnioneProduttori"
    con i campi "Tipo impianto" e "Produttore" della maschera "NuovoProgetto"
    ( Chiamiamo per semplicita questo insieme di record "fffff" )

    - Se non esiste la tabella "PROGETTO"
    ---- Vogliamo creare la tabella "PROGETTO" con il recorset "fffff"

    - Se esiste gia la tabella "PROGETTO"
    ---- Vogliamo accodargli dentro i record di "fffff" escludendo pero i duplicati.
    __________________________________________________ _

    e fino a qui mi sembrava tutto semplice
    (e la soluzione di Ibernet sembrava a colpo d'occhio valida )

    __________________________________________________ _

    Pero alla fine ci dici che
    ... e dopo averle eseguite rinomina la mia tabella progetto con il numero del progetto cioè 20131 ...
    Questo significa che la tabella "PROGETTO" non c'è mai ?????


    Facci sapere


    .

  3. #13
    Originariamente inviato da ShAdOw WaLkEr
    si ibernet e non mi funge .-. non capisco il motivo
    e riportare l'errore no? ti stai complicando la vita per niente ^^

  4. #14
    sono riuscito a risolvere con tante query in un modulo vba usando poi un metodo rename per far prendere al nome della tabella generata il numero del progetto, posto il codice di tutto

    il modulo vba per la prima scelta è il seguente
    codice:
    '------------------------------------------------------------
    ' Macro1
    '
    '------------------------------------------------------------
    Function Macro1()
    On Error GoTo Macro1_Err
    
        DoCmd.OpenQuery "Selezione record voluti", acViewNormal, acEdit
        DoCmd.OpenQuery "SalvataggioRisultatoQueryInTabella", acViewNormal, acEdit
        DoCmd.OpenQuery "TabellaME", acViewNormal, acEdit
        Dim io As Integer
        io = [Forms]![NuovoProgetto]![Numero progetto]
        DoCmd.Rename io, acTable, "ME"
    
    Macro1_Exit:
        Exit Function
    
    Macro1_Err:
        MsgBox Error$
        Resume Macro1_Exit
    
    End Function
    per la seconda e successive
    codice:
    Function fctTableExists(strTableName As String) As Boolean
    
      If DCount("*", "MSysObjects", "Name='" & strTableName & "'") Then
      fctTableExists = True
      End If
    End Function
    Private Sub Comando25_Click()
    Dim io As String
    io = [Forms]![NuovoProgetto]![Numero progetto]
    If fctTableExists(io) Then
      MsgBox ("la tabella esiste")
       DoCmd.OpenQuery "Selezione record voluti", acViewNormal, acEdit
       DoCmd.OpenQuery "QueryTempo", acViewNormal, acEdit
       DoCmd.OpenQuery "RisultatoAccodamentoInTabella", acViewNormal, acEdit
       Dim x As Integer
        x = [Forms]![NuovoProgetto]![Numero progetto]
        DoCmd.Rename x, acTable, "ME"
      Else
      MsgBox ("la tabella non esiste")
      End If
    End Sub
    questo è per cancellare la tabella temporanea TE quando si passa da un progetto all'altro
    codice:
    Private Sub Comando27_Click()
    Dim strSQL As String
    strSQL = "DROP TABLE TE"
    CurrentDb.Execute strSQL
    End Sub
    non sto a postare il testo di tutte le query, comunque l'idea è stata, unisco tutte le tabelle con una query di unione così posso selezionare anche per produttore senza doevr usare il nome delle tabelle per una scelta che non si poteva fare, seleziono i record che mi servono con una query di selezione, li metto in una tabella temporanea te con il primo bottone, con il secondo bottone seleziono i record che mi servono con la stessa query di prima, accodo questa selezione a te e copio te in un'altra tabella x rinominando x con il numero del progetto preso da maschera, in modo tale da non perdere te, in quanto tutti i successivi accodamenti devono essere fatti aio precedenti dati, poi quando passo a un nuovo progetto cancello la tabella te con un altro bottone usando DROP TABLE, in modo così da avere poi di nuovo un'altra creazione di te nel secondo progetto con gli accodamenti del secondo progetto e basta

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 © 2026 vBulletin Solutions, Inc. All rights reserved.