Inserire record da una maschera ricerca ad un'altra

di
Anonimizzato14406
il
11 risposte

Inserire record da una maschera ricerca ad un'altra

Salve a tutti, sono Enzo nuovo del forum, spero di trovare aiuto per le difficoltà che ho e premetto che non sono bravo con access.
Fatta la premessa, vengo al problema:
ho creato una maschera iniziale chamata Registro con vari campi (data,cliente,prodotto,ect), nella proprietà della casella di testo "Cliente" ho creato una macro incorporata per aprire una 2 maschera di ricerca, la quale è strutturata con una casella di testo dove inserisco il nome da ricercare e con un pulsante di comando che mi estrare i nomi in una sottomaschera, i dati vengono presi dalla tabella cliente.
Il mio intendo sarebbe, una volta trovato il nome dalla ricerca, un doppo click sul nome stesso e riportarlo nella casella di testo "Cliente" della maschera iniziale "Registro".
Ovviamente una casella combinata mi darebbe il risultato senza troppe complicazioni, ma le complicazioni mi piacciono.
Ho provato con questo codice sul doppio click:
Me!ricerca_stm!Cliente = Forms!Registro!Cliente.Value

ma niente, forse perchè uso lo stesso nome della casella sia nella maschera di ricera che in registro?

11 Risposte

  • Re: Inserire record da una maschera ricerca ad un'altra

    Ma il campo Registro.Cliente in che modo prende i dati da Clienti? Generalmente si preferisce il campo chiave IDCliente e con una casella combinata risolvi molto più semplicemente il problema. Potresti descrivere tutte le tabelle che entrano in gioco con tutti i campi e le relazioni?
  • Re: Inserire record da una maschera ricerca ad un'altra

    Il campo Registro.Cliente è una casella di testo non associata, l'ho inserita io per poter fare la funzione prima descritta.
    Mi spiego meglio, nella maschera iniziale Registro la casella combinata IDCliente ci sta e funziona perfettamente, e se lascio così il problema non sussiste.
    Ma quello che io vorrei cercare di creare è un'iserimento del record ricercato nella "maschera ricerca" senza utilizzare la casella combinata IDCliente.
  • Re: Inserire record da una maschera ricerca ad un'altra

    Puoi spiegarci come e perchè vuoi fare questo? Sinceramente non ho capito nulla.
    Potresti descrivere dettagliatamente tutte le tabelle e tutti i campi (con relazioni) che entrano in gioco?
  • Re: Inserire record da una maschera ricerca ad un'altra

    Potresti descrivere dettagliatamente tutte le tabelle e tutti i campi (con relazioni) che entrano in gioco?
    Ok Osvaldo ti descrivo il db.
    Tabella: Cliente
    Campi: Id,Cliente(chiave),indirizzo,ect

    Tabella: Registro
    Campi: Id(chiave)-data-Cliente,ect; il campo Cliente è una casella di riepilogo con origine riga un generatore di query che prelevo il nome del cliente, tabella cliente.
    La relazione tra le tabelle è uno a molti (1 Cliente molti Registri).

    Maschera:Registro
    gli stessi campi della tabella Registro, il campo cliente è una casella combinata con origine riga un generatore di query che prelevo il nome del cliente, tabella cliente, in ultimo ho aggiunto una casella di testo chiamata Prova non associata.

    Maschera: Ricerca_stm (che la uso come sottomaschera)
    Campi: Cliente, indirizzo, città, ect
    origine record generatore query che preleva i campi dalla tabella Cliente. Il campo Cliente ho inserito il criterio:
    Like ("*" & [forms]![Ricerca Cliente].[Nome] & "*")
    Maschera:Ricerca Cliente
    campi: casella di testo non associata chiamata Nome, pulsante di comando chiamato Cerca con routine click
    Private Sub Cerca_Click()
    Me.ricerca_stm.Visible = True
    Me.ricerca_stm.Requery
    End Sub
    ed ho inserito la sottomaschera ricerca_stm in visualizzazione foglio dati.

    Infine nella maschera Registro nella proprietà della casella "Prova" sul click ho inserito una macro per aprire la maschera "Ricerca Cliente".
    Puoi spiegarci come e perchè vuoi fare questo? Sinceramente non ho capito nulla.
    Adesso quello che io vorrei cercare di fare, è una volta ricercato il nome nella maschera Ricerca Cliente, sul campo "Cliente" della sottomaschera "Ricerca_stm con un doppio click riportare in nome nella maschera Registro nella casella "Prova".
    Tutto questo per non usare la casella combinata, rendendo molto più carino la ricerca e l'iserimento del Cliente.
    Spero di essere stato abbastanza chiaro e ti ringrazio per la disponibilità.
  • Re: Inserire record da una maschera ricerca ad un'altra

    EnzoGranato ha scritto:


    Maschera: Ricerca_stm (che la uso come sottomaschera)
    Campi: Cliente, indirizzo, città, ect
    Non ho capito se hai sbagliato l'approccio organizzativo maschera/sottomaschera classico, oppure hai deciso di farti del male...molto male.
    Clienti è tabella madre, mentre Registro figlia. Logica classica, normale, consolidata (tu saresti l'unico al mondo a volerla controvertire) vuole che la maschera superiore sia Clienti e Registro sottomaschera.
    Quello che ho appena scritto, lo avevi preso in considerazione?

    Forse...forse...forse ho capito quale potrebbe essere il tuo cruccio. Correggimi se sbaglio. Quando vuoi inserire il Cliente in Registro, alcune volte non ricordi nemmeno il Nome, ma magari "...quello di Cerignola..."..."dove sta"?..."come si chiamava"?...
    Se così stanno le cose, io gestirei il tutto in maniera molto più snella, pratica, efficace, intuitiva, "consolidata".
    Prima di continuare su una mia tangente, vorrei che i nostri ragionamenti si allineassero.
  • Re: Inserire record da una maschera ricerca ad un'altra

    Non ho capito se hai sbagliato l'approccio organizzativo maschera/sottomaschera classico, oppure hai deciso di farti del male...molto male.
    Clienti è tabella madre, mentre Registro figlia. Logica classica, normale, consolidata (tu saresti l'unico al mondo a volerla controvertire) vuole che la maschera superiore sia Clienti e Registro sottomaschera.
    Quello che ho appena scritto, lo avevi preso in considerazione?
    
    Infatti forse ho spiegato male io, la tabella cliente è madre e la tabella registro figlia.
    Per le maschere Ricerca Cliente e Ricerca_stm, servono solo a ricercare il nome del cliente.
    Forse...forse...forse ho capito quale potrebbe essere il tuo cruccio. Correggimi se sbaglio. Quando vuoi inserire il Cliente in Registro, alcune volte non ricordi nemmeno il Nome, ma magari "...quello di Cerignola..."..."dove sta"?..."come si chiamava"?...
    Se così stanno le cose, io gestirei il tutto in maniera molto più snella, pratica, efficace, intuitiva, "consolidata".
    No, non è questo che vorrei fare, io vorrei che una volta ricercato il cliente per nome, clickandoci sopra me lo inserisca nella maschera Registro.
    A me funziona tutto quello che ho descritto, anche la ricerca, quello che non riesco a fare è solo ckiccando sul nome ricercato trasferirlo nella maschera Registro
  • Re: Inserire record da una maschera ricerca ad un'altra

    Perdonami, ma io so ragionare solo in queste 2 direzioni.

    A) Maschera/sottomaschera Clienti/Registro. Tutti i record che vedi in basso in sottomaschera Registro appartengono solo ed esclusivamente al IDCliente che si vede in alto. Quando vuoi cercare un Cliente per Cognome, posizioni il cursore dentro Cognome e clic su tasto Trova ecc...

    B) Preferisci lavorare partendo da Registro. In questo caso hai la tua bella casella combinata IDCliente. Quella funziona, quella è, così si fa, penso che nessun utente possa darti soluzione diversa.
    Tutt'al più, quando un IDCliente non c'è, bisogna aprire maschera Clienti con un clic di pulsante, posizionarsi su Nuovo Record, digitare i nuovi dati e poi un clic di pulsante di ritorno, imposti il nuovo valore nella casella combinata Registro.IDCliente.

    È sbagliato avere contemporaneamente in maschera Registro il campo IDCliente (giusto) e Cliente. Cancella quest'ultimo campo.

    Non saprei aiutarti diversamente.
  • Re: Inserire record da una maschera ricerca ad un'altra

    Grazie Osvaldo, volevo solo creare una cosa più carina per inserire il Nome del Cliente senza usare la Compo, tutto qua, significa che userò la Compo anche se non mi piace.
    Grazie ancora.
  • Re: Inserire record da una maschera ricerca ad un'altra

    OsvaldoLaviosa ha scritto:


    Tutt'al più, quando un IDCliente non c'è, bisogna aprire maschera Clienti con un clic di pulsante, posizionarsi su Nuovo Record, digitare i nuovi dati e poi un clic di pulsante di ritorno, imposti il nuovo valore nella casella combinata Registro.IDCliente.
    Prova a sfruttare questa frase per un intento più generale. Cioè usare il clic del pulsante che apre Clienti SEMPRE. Avrai bisogno SEMPRE dell'impostazione IDCliente sulla casella combinata al ritorno.
    Sia chiaro che non ha assolutamente senso avere 2 campi (attivi) contemporaneamente IDCliente e Cliente. Il secondo puoi ottenerlo come risultato della casella combinata stessa andando a prelevare il suo valore testuale sfruttando la proprietà:
    = [NomeCasellaCombinata].[Column](NumeroColonna-1)
    ma stiamo parlando di una casella di testo non associata.
    Sto disperatamente tentando di interpretare i tuoi intenti, spero che tu li comprenda a pieno. Continuo tuttavia a non capirne l'utilità pratica.
  • Re: Inserire record da una maschera ricerca ad un'altra

    Grazie Osvaldo ma non era questo che cercavo, quello che io cerco di fare è cercare il Cliente nella maschera ricerca e successivamente dopo che l'ho trovato riportarlo nella maschera Registro.
    Se riuscirei a fare questo la casella compinata la toglierei.
  • Re: Inserire record da una maschera ricerca ad un'altra

    Ho provato a rileggere tutta la discussione. Sinceramente avrei bisogno di una descrizione dettagliata di TUTTI i campi di:
    - maschera Registro
    - maschera ricerca: come si chiama esattamente?
    - sottomaschera che sta sotto "maschera ricerca": anche questa come si chiama?
    Descrivi anche i campi dove ci sono le relazioni.
    Poi vorrei una descrizione passo passo di quello che vorresti accadesse...tieni presente che hai proposto un enigma atipico, per questo non ci si capisce. Se necessario cita pure qualche esempio con valori reali per rendere meglio l'idea.
Devi accedere o registrarti per scrivere nel forum
11 risposte