Domanda

Ho sentito in giro che la prossima Access2010 ha una caratteristica dei dati macro che sarà per la prima volta aggiungere funzionalità grilletto facile come per accedere alle tabelle del motore di dati. Qualcuno ha ulteriori dettagli su questo? Ad esempio, possono creato nel codice (ACEDAO, DDL SQL, ecc)? Fa la corsa macro dati, se i dati vengono modificati al di fuori dell'interfaccia utente di accesso per esempio tramite ODBC, OLE DB, ecc?

È stato utile?

Soluzione

Ok, un po 'più informazioni.

  

Fa la corsa macro dati, se i dati vengono modificati al di fuori dell'interfaccia utente di accesso per esempio tramite ODBC, OLE DB, ecc?

Si fa.

Questi veri trigger sono a livello di motore di dati. Quindi, utilizzando indugi, dao o addirittura la modifica delle tabelle in vista tabella in MS-Access significa che i fattori scatenanti spareranno. Questi trigger dovrebbero includere anche lo scenario in cui non hanno nemmeno bisogno MS-Access installato sul computer.

Sarà ovviamente necessario JET installato (per il resto di questo articolo userò il termine ACE). Ricordo che era solo in Access 2007 che la squadra ha ricevuto la proprietà di accesso JET. Essi sono ora liberi di migliorare questo motore per le loro esigenze. Abbiamo iniziato a vedere alcuni cambiamenti alle ACE nel 2007 e ora vedremo molto di più modifiche per il 2010. Alcune di queste caratteristiche sono ancora NDA per me ... ma io si riverseranno per quanto mi è possibile qui.

  

Ad esempio, possono creato nel codice (ACEDAO, DDL SQL, ecc)?

Nel codice, perahps, ma non con SQL DDL. I trigger non sono comandi SQL. Tenete a mente che per Oracle o SQL Server o sistemi più sul mercato che tutti tendono ad avere la loro lingua su misura per i loro PROPRIO trigger in ogni caso.

Nel nuovo ACE si quindi scriverai quello che viene chiamato una macro di dati. Si utilizza l'editor macro in MS-Access. Questi sono vecchi macro di accesso stile, ma l'editor è stato completamente ri-fatto. Le nuove macro hanno anche subroutine, looping, se poi else blocchi e un tipo di set di record. Ricordate, abbiamo ricevuto la capacità di creare variabili temporanee in 2007 macro. Nel 2010 questo è esteso per includere anche le variabili locali e, soprattutto, nuove funzionalità.

La sintassi per i comandi macro esistente è la stessa delle versioni precedenti. Tuttavia, abbiamo un nuovo IDE chiazza di petrolio insieme a tutti quelli sopra i comandi fresco aggiunto. Ora abbiamo così due tipi di macro. macro UI (regolari come prima) e ora le nuove cosiddette macro di dati. Non avrebbe senso per un macro livello di tabella per essere in grado di visualizzare i messaggi di errore sullo schermo. Quindi, qualsiasi errore registrato entra in una tabella. C'è anche un paio di nuovi comandi di registrazione che consentono di scrivere i propri errori personalizzati a quel tavolo. Un design brillante e semplice qui. Ecco che cosa quel tavolo log degli errori appare come:

alt text
(fonte: kallal.ca )

In un mondo di IDE enormi di opere, telaio enormi e terrificanti enormi librerie di codice corrisposto per aggiornare una semplice riga di una tabella, posso dire che le macro di dati sono caratteristica più rinfrescante. Si sentono molto simile a come funziona il dbaseII originale. Sono molto semplici, ma il potere mortale pieno perché corrono a livello di tabella.

Per esempio, ecco una macro dati che manterrà l'inventario totali un tavolo. In questo esempio ho intenzione di assumere che l'inventario maestro esistono record. E poi abbiamo una tabella di dettagli dell'ordine. Se un utente modifica qualsiasi valore nella tabella Ordini, vogliamo che la tabella principale per l'aggiornamento automatico dei livelli di inventario.

Quindi dobbiamo: Ho due tabelle

tblFruits:    main data fruit inventory table
id         (autonumber)
Fruit text
OnHand    (number value of fruit in inventory)

tblFruitsOrder
id       (autonumber)
Fruit_id (FK to tblFruts.ID)
QtyOrder (number of fruit to order)

Questo è semplice test

Quindi, abbiamo intenzione di avere un trigger nella tblFruitsOrder che aggiornerà + Mantenere i livelli di inventario in tblFruits quando il campo è QtyOrder editare o modificare.

Ecco cosa la macro appare come:

alt text
(fonte: kallal.ca )

Si noti come molto semplice quanto sopra è. Si noti che nel IDE se si fa clic su una sezione del codice, quindi si ottiene il vecchio stile tipo di macro modifica in cui si can immettere i valori per il comando (questo è simile a pre 2010, ma ora i parametri e la modifica si verifica nel codice, non è un pannello che appare sulla parte inferiore dello schermo nelle versioni precedenti).

Ecco un altro colpo di schermo in cui ho giocato con la capacità di fare un ciclo e chiamare una subroutine.

alt text
(fonte: kallal.ca )

In quanto sopra si può usare msgboxs ecc, perché questo non è un macro livello di tabella. Così i comandi disponibili sono limitate automaticamente per voi quando si scrive una macro livello di tabella invece di una macro normale. La terminologia che abbiamo adottato per distinguere i due tipi di macro sono macro di interfaccia utente e le macro di dati.

È possibile che questo è tutto quello che posso parlare in pubica. Tuttavia c'è ancora qualche caratteristiche veramente pulito-O in merito a queste macro che io semplicemente non posso ancora parlo in pubblico come io sono ancora sotto NDA su quelle caratteristiche. Ma c'è sorprese più cool di venire qui.

Ecco una schermata dei tipi di tabella di trigger abbiamo:

alt text
(fonte: kallal.ca )

Altri suggerimenti

Maggiori informazioni su questa nuova funzionalità è stata oggi pubblicato sul blog del team di sviluppo di Microsoft Access e fornisce sicuramente più informazioni sulla questione cruciale sollevata nei commenti di cui sopra.

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