Avatar billede sol18 Nybegynder
14. oktober 2004 - 13:41 Der er 6 kommentarer og
1 løsning

Access frontend - søgning i mysql

Hej,

Jeg har et kartotek hvor jeg benytter MS access som frontend til MYsql via ODBC.

Det virker perfekt - Dog er søgningen i de sammenkædede tabeller (access - MYsql) meget langsom. Er der en mulighed for at speede søgningen op i acces.
Kan man evt. lave en lokal kopi af tabeller i access som kartoteket arbejder med der automatisk bliver synkroniseret med den sammenkædede tabel fra Mysql.

Håber det giver mening !
Avatar billede arne_v Ekspert
14. oktober 2004 - 14:40 #1
Umiddelbart tror jeg bare at du skal bruge de klassiske optimeringer:
  - index på de rette felter i databasen
  - minimere de datamængder der skal sendes fra MySQL til Access
  - optimere memeory og disk opsætning for MySQL
Avatar billede arne_v Ekspert
14. oktober 2004 - 14:41 #2
Specifikt skal du undgå brug af Access/VBA funktioner i din SQL, fordi de får
Access til at hente de rå data fra server og lave bortskæringen af data på client.
14. oktober 2004 - 15:14 #3
Hvis du har mistanke om, at ODBC ikke optimere søgningen korrekt, kan du lave dine forespøgsler om til Pass-Through-queries. Det gør du fra forespørgselsdesign ved at gå i menuen Forespørgsler->SQL specifikt->videregivelsesforespørgsel

Her kan du nu angive MySQL-SQL. Dvs MySQL's egen syntaks.. Ved at angive connectstrengen til serveren, får du nu den optimale forespørgsel, idet den kun sender SQL'en afsted og kun får resultatet tilbage.
Avatar billede sol18 Nybegynder
14. oktober 2004 - 18:06 #4
Hej,

Problemet opstår når jeg benytter access indbyggede søge funktion i formularer eller på tabeller. på de data der ligger på mysql serveren.

Er det muligt at have en lokal tabel (access) til arbejdet med databasen der er synkroniseret med den sammenkædede tabel ?
14. oktober 2004 - 22:03 #5
Du kan sagtens lave en lokal kopi af tabellen, men du kan ikke få den "automatisk" synkroniseret. Du skal selv lave en opdateringsforespørgsel, som opdaterer server-tabellen.

Men i stedet for at bruge Access' indbygges søgefunktion, bør du altid bruge filtrering i stedet (f.eks. højreklik og indtast kriteriet i filter-feltet) Det er væsentligt hurtigere. Brug ALDRIG kikkerten, da den netop er nødt til at hente hele tabellen ned for at kunne søge.

Du kan også bygge en brugervenlig søge/filter-funktion på formularen, som også benytter filter.

Jeg har et eksempel liggende her, som også fungere på client/server-løsninger: http://www.makeiteasy.dk/eksempler/Downloads.htm

Eksemplet hedder "Filter- og søgefunktion"
Avatar billede sol18 Nybegynder
15. oktober 2004 - 12:11 #6
Yes - jeg benyttede thomasjeppen løsning - søgningen kører nu hurtigere end man kan sige snus tobak.

Jeg søger nu på tre tekst felter - ønskede fritekst søgning på alle tre felter - så jeg oprettede en "Fritekst1" og "Fritekst2" i den dynamiske søgestreng.
Kunne ikke bruge "fritekst" på alle tre felter.

Tak for hjælpen !!!
15. oktober 2004 - 12:12 #7
Perfekt!

Og selv tak :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester