Domanda

Come si crea un database in Microsoft Access che è la ricerca da parte di alcuni campi e controllato da pochi (necessario) caselle di testo e caselle di controllo in un form in modo da è facile da utilizzare - non difficile query?

Esempio:Si dispone di diverse caselle di testo e varie caselle di controllo corrispondenti in una maschera, e quando la casella di controllo accanto alla casella di testo è selezionata, la casella di testo è attivata e si può quindi cercare da ciò che viene inserito in detto casella di testo

(In realtà ho già sapere questo, solo giocando stackoverflow pericolo, dove faccio una domanda io conosco la risposta, solo per aumentare il mondo, conoscenza di programmazione!risposta in circa 5 minuti)

È stato utile?

Soluzione

Questo è in realtà una abbastanza grande argomento e pieno, con tutti i tipi di potenziali problemi.La maggior parte di livello intermedio e avanzato libri di Accesso avrà un qualche tipo di sezione si parla di "Query in base a Maschera", dove si dispone di una maschera che permette all'utente di scegliere determinati criteri, e che quando viene eseguito, scrive on-the-fly di SQL per restituire i dati corrispondenti.

In qualcosa di più di un piatto, tavolo singolo struttura di dati, questo non è un compito banale, perché la clausola di SQL dipende tabelle query nella clausola WHERE.

Alcuni esempi di QBF forme da app ho creato per i clienti:

  1. L'interrogazione 4 tabelle sottostanti
  2. Esecuzione di query su un piatto singola tabella
  3. Interrogazione 3 tabelle sottostanti
  4. Interrogazione di 6 tabelle sottostanti
  5. Query 2 tabelle sottostanti

Il primo è guidato da un modulo di classe che ha la proprietà che rispecchiano i criteri selezionati in questa forma, e che dispone di metodi che scrivere e DOVE clausole.Questo rende estremamente facile per aggiungere altri campi (purché tali campi non vengono da altre tabelle oltre a quelli già inclusi).

La parte più complessa del processo di scrittura DALLA clausola, come è necessario disporre di adeguati tipi di join e includere solo le tabelle nella clausola SELECT o la clausola WHERE.Se si include ogni altra cosa, dovrete rallentare la query molto (soprattutto se avete un outer join).

Ma questo è un grande tema, e non c'è nessuna bacchetta magica soluzione: invece, qualcosa di simile a questo deve essere creato per ogni particolare applicazione.E ' anche importante che si testarlo a fondo con gli utenti, dal momento che è completamente chiaro e comprensibile a voi, lo sviluppatore, è spesso assai ingannevole per gli utenti finali.

Ma questo è un principio che non vale solo per il QBF!

Altri suggerimenti

La mia soluzione è quella di aggiungere un "filtro" controllo nell'intestazione, per ciascuna delle colonne voglio essere in grado di filtrare (di solito tutti ...).Ogni volta che un "filtro" controllo viene aggiornato, una procedura per eseguire l'aggiornamento è attivo il filtro di forma, utilizzando il "BuildCriteria" funzione disponibile in Access VBA.

Così, Quando scrivo "*cable*"nel "filtro" nella parte superiore dell'Ordine di Acquisto Descrizione colonna, il "DOVE PODescription È COME "*cable*"viene aggiunto automaticamente il MyForm.proprietà del filtro ....

Alcuni sarebbero oggetto di filtraggio origine record fatto di più tabelle sottostanti, che può diventare molto difficile.Che è di destra.Quindi la soluzione migliore è, secondo me, per sempre (voglio dire!) utilizzare un piatto di tabella o di una vista ("SELEZIONARE" query in Access) come origine record di una maschera.Questo renderà la vostra vita molto più facile!

Una volta che siete convinti di questo, si può pensare anche di un modulo di piccole dimensioni che consente di automatizzare l'aggiunta di "filtrare" i controlli e le procedure relative alle vostre forme.Sarete sulla strada giusta per un vero e proprio user-friendly interfaccia client.

Allo start-up, è necessario mostrare una forma e disattivare le altre menù etc.In questo modo il tuo utente solo vede mai la vostra funzionalità limitate e non può aprire direttamente le tabelle etc.

Questo estratto da un libro, Mondo reale di Database di Microsoft Access Protezione e Sicurezza, dovrebbe essere illuminante.

Per una domanda che vago, tutto quello che posso rispondere è aperto MS Access e fare clic con il mouse un paio di volte.

Il secondo pensiero:
Utilizzare il "Condizionewhere" argomento dei "OpenForm" metodo

Se la funzionalità è molto limitato e/o specializzate, quindi un database SQL è probabilmente andando a essere eccessivo, comunque, ad es.la cache di tutte le combinazioni di dati a livello locale, in memoria anche, e mostra un secondo le caselle di controllo nel modulo.In precedenza si potrebbe avere per la revoca di autorizzazioni da tavolo e ha concesso loro solo su Vista/Proc interrogato i dati nel modo prescritto, tuttavia la sicurezza è stato rimosso da MS Access 2007 così si può ora realmente impedire agli utenti di bypassare il semplice app utilizzando, ad esempio, di Excel e di interrogare i dati in qualsiasi modo a loro piace ...ma poi non è che il punto di un database?;-)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top