Condizione in Access

di il
21 risposte

Condizione in Access

Buongiorno,
sono nuovo nel Forum quindi un saluto a tutti voi dalla Germania
chiedo il vostro aiuto perchè e da poco tempo che ho cominciato ad usare Access e purtroppo non riesco a fare quanto segue spero di spiegarmi bene.
Vorrei inserire dei dati in una tabella tramite la scannerizzazione di un codice a barre, ma vorrei mettere 2 condizioni e cioe se il testo comincia con es. TR deve venire scritto in una determinata casella, mentre se inizia con alto in un'altra.
vi prego per me e veramente molto importante capire come fare
Spero in un vostro aiuto .

Grazie in anticipo.

21 Risposte

  • Re: Condizione in Access

    La tua esigenza... rchiede quindi una TextBox non associata con il focus nella quale lo scanner scrive il Codice... poi un Button che su condizione va a salvare il dato dove è corretto sia salvato.
  • Re: Condizione in Access

    Alex,
    grazie per la tua risposta purtroppo lo dovrei fare senza il button perche dovrei automatizzare il tutto, sai come dovrei scrivere la condizione ?
    Grazie ancora
  • Re: Condizione in Access

    Giuliano_74 ha scritto:


    Alex,
    grazie per la tua risposta purtroppo lo dovrei fare senza il button perche dovrei automatizzare il tutto, sai come dovrei scrivere la condizione ?
    Grazie ancora
    Devi verificare se, la scrittura fatta con Scanner emula in tutto e per tutto la tastiera, ovvero se genera gli EVENTI.
    In quel caso puoi inserire codice su KeyPress e gestire tutto in Automatico.
    Per la scrittura della condizione è una semplice IF... THEN...END IF, codice basilare del VBA.
  • Re: Condizione in Access

    Ok lo scanner emula la tastiera , ma la Cosa che non ricordo e come far scrivere nella casella in Excel con A, b, etc. ma in Access ? scusa per la mia ignoaranza in materia ma sono anni che non programmo piu e adesso vorrei ricominciare, faccio queste domande perche e un Piccolo progetto che devo portare al piu presto a Termine, pensavo ad una Cosa del genere in Excel da riportare in Access

    If Range ("a1") = "Transp" Then ,

    come faccio a fargli controllare solo le prime 3 lettere e non tutte la parola ? e quale comando deve seguire per farlo scrivere nella casella che io voglio ?
    Chiedo scusa
    Ti ringrazio ancora
  • Re: Condizione in Access

    In Access non ci sono Celle, ma controlli, ognuno ha un nome... e la sintassi è definita dalle basilare regole del VBA per Access.
    Le funzioni di Manipolazione delle Stringhe da VBA sono documentate nella guida in linea...
    Nel tuo caso non hai bisogno di controllare nulla ma di equiparare il contenuto del Controllo con un confronto
    
    If RiferimentoControllo LIKE "ABC*" Then
    P.S. non serve che ti scusi per essere alle prime armi, tuttavia le basi le devi avere per interfacciarti nel Forum.
  • Re: Condizione in Access

    Ancora grazie so che devo riprendere lo Studio ma come dicevo e un Piccolo (progetto) che vorrei portare a Termine il prima possibile.
    spero di riuscirci.
  • Re: Condizione in Access

    In base a quanto indicato:

    Giuliano_74 ha scritto:


    Vorrei inserire dei dati in una tabella tramite la scannerizzazione di un codice a barre, ma vorrei mettere 2 condizioni e cioè se il testo comincia con es. TR deve venire scritto in una determinata casella, mentre se inizia con alto in un'altra.

    Giuliano_74 ha scritto:


    Ok lo scanner emula la tastiera ...

    Giuliano_74 ha scritto:


    ... lo dovrei fare senza il button perché dovrei automatizzare il tutto ...
    dovendo velocizzare la fase di acquisizione, è preferibile effettuare la scansione del codice a barre in un solo campo associato alla tabella e per ciascun dato acquisito presentarlo (in output, immediatamente dopo) in una delle due caselle di testo (nella maschera) in base al criterio di inizio o meno della stringa "TR" (sfruttando la funzione LEFT).
    https://support.office.com/it-it/article/funzione-left-d5897bf6-91f5-4bf8-853a-b63d7de09681
    https://www.techonthenet.com/access/functions/string/left.php
  • Re: Condizione in Access

    Grazie delle risposte l‘ultima domanda che ho qual‘e il comando che va a far scrivere nella casella che voglio ? Cioè scannerizzo controllo la lunghezza (left ) oppure con la condizione (if) ma poi come dire scrivi in quella determinata casella? In Excel mi sembra sia Range a1 etc Purtroppo ho letto tanti comandi ma non sono riuscito a trovarlo .
  • Re: Condizione in Access

    Nella lettura dei diversi comandi, forse è sfuggita la, banale, opportunità di assegnare il valore alla casella di testo:
    https://support.office.com/it-it/article/aggiungere-un-controllo-casella-di-testo-a-una-maschera-o-un-report-c51860c5-1091-4eef-a1a5-f207d9d46493
    https://support.office.com/it-it/article/esempi-di-espressioni-d3901e11-c04e-4649-b40b-8b6ec5aed41f
    https://www.pmi.it/economia/lavoro/12142/come-associare-un-valore-predefinito-a-una-casella-di-testo-in-access.html
  • Re: Condizione in Access

    In 2 giorni ho letto di tutto e imparato tanto il progettino ( se così si può chiamare e quasi finito ) ma non riesco a scrivere una stupida condizione !! Ho una casella di testo ( di nome Testo10 ) non assegnata e 2 campi ( in una tabella di nome controllo ) uno di nome Tracking e uno Schein ,nella casella di testo vorrei scannerizzare un codice a barre che se comincia con trnr. Lo dovrebbe scrivere nella casella Tracking mentre se comincia con qualsiasi altra cosa deve scrivere in Schein per favore potreste scrivermi una linea di codice in modo da capire il dove sbaglio ? Ho provato con la funzione LIKE ma non riesco a capire dove sbaglio Mi scuso ancora per l‘incompetnza.
  • Re: Condizione in Access

    Leggi con più attenzione i thread di risposta, ad esempio impiegando la funzione LEFT puoi stabilire (nell'evento dopo aver acquisito il codice a barre) con una IF determinare dove dovrai assegnarlo, schematicamente:
    
    if left(Testo10,2)="TR" 
    	Tracking = Testo10
    else
    	Schein = Testo10
    endif
    
    Vi sono comunque dubbi sulla struttura da te impiegata magari motiva perché impieghi due campi nella tabella ("Tracking", "Schein") quando ne è necessario uno soltanto.
  • Re: Condizione in Access

    Ciao Willi ti ringrazio e ti auguro un buon natale, ti spiego
    In ditta spostiamo con dei carrelli numerati , materiale da un reparto all‘altro ( pochi km) questi vengono caricati sui camion e portati a destinazione. Fino ad oggi non abbiamo mai documentato niente da qui l‘idea di creare un database nel quale memorizzare il numero del carrello(Tracking ) e quello che si trova su di esso ( Schein ) seguito da data e ora. Il tutto tramite uno scanner l‘operaio dovrà scannerizzare prima il numero del carrello e poi il numero d‘ordine ( Schein ) questo senza fare uso di tastiera, deve essere un processo veloce nel quale l‘operaio dovrà fare uso solo dello scanner e non deve avere bisogno di usare il pc. Chiaramente questo avrà la sua postazione con database aperto.
    Per questo avevo pensato ai 2 campi. Da quello che ho capito hai molta esperienza hai qualche idea migliore ??
    Ringrazio ancora tutti siete gentilissimi
    buon natale
  • Re: Condizione in Access

    Willi il codice che mi hai dato lo avevo già provato ( con il Then ) ma sembra non funzionare.
  • Re: Condizione in Access

    Dire che sembra che non funziona non è indicativo se non descrivi come hai implementato il tutto.
    Hai indicato di impiegare una maschera, con cui gestisci l'acquisizione del codice a barre (nel controllo "Testo10" non associato) e vorresti assegnarne il valore al campo "Tracking" (se "Testo10" inizia con "tr") oppure a "Schein".
    Giusto per fare un esempio, se hai una maschera continua (in forma tabulare in modo da avere l’elenco dei dati inseriti) la cui "Origine record" è la tabella con i due campi "Tracking" e "Schein") ove presenti questi campi nei rispettivi due controlli (denominati allo stesso modo, "Tracking" e "Schein") che magari sono posti con modalità Abilitato=No e Bloccato=Sì (al fine di non imputare i dati in tali caselle di testo) di conseguenza avendo una unica casella di testo ("Testo10") ove effettui la scansione del codice a barre, per assegnare i valori acquisiti dal lettore è sufficiente agire sull'evento "Dopo aggiornamento" ponendo il seguente codice:
    
    Private Sub Testo10_AfterUpdate()
    If Left(Testo10, 2) = "TR" Then
       Tracking = Testo10
    Else
       Schein = Testo10
    End If
    End Sub
    
    In ogni caso considera che potresti acquisire i dati su due caselle di testo separate (associate ai relativi campi della tabella) controllando per la prima se inizia per "TR" (non avendo, quindi, necessità della casella di testo "Testo10") e avresti i dati sul medesimo record.
Devi accedere o registrarti per scrivere nel forum
21 risposte