Avatar billede dadane Novice
21. maj 2000 - 15:26 Der er 11 kommentarer og
1 løsning

Kald Access med søgning

Er der nogen der ved hvordan jeg åbne access direkte med en søgning?

Eksempel:

  Jeg har en database MineVenner.db den indeholder forskellige felter.
  Den indeholder forskellige felter, bl.a. fødselsdato og mobilnummer.
  Kan jeg kalde Access på en sådan måde at den søger på dato
  Lidt a la Access MineVenner.db -søg dato=15/5.

  Endnu bedre kan jeg kalde access så den giver mig mobilnummeret hvis
  jeg giver den fødselsdatoen. - Sådan at jeg kan lave et lille program der
  automatisk sender en SMS besked til dem der har fødselsdag :-))
Avatar billede janbb Juniormester
21. maj 2000 - 15:51 #1
Du kan lave det i asp, men det kræver at databasen ligger på en server og du
søger on-line og at serveren understøtter asp og at du har acces i
office-2000 og at serveren understøtter dette osse.
Avatar billede philiph Nybegynder
21. maj 2000 - 18:55 #2
Du kan kalde Access med parameteren /cmd. Alt derefter bliver ikke behandlet af access, men overført til Command() funktionen.

Ret din kommandolinie til:
Access MineVenner.db /cmd -søg dato=15/5

I forbindelse med opstart af databasen, kan du checke om /cmd parameteren er udfyldt, og bruge dem til hvad du nu vil.

Hvis du f.eks. har angivet at access skal starte med at åbne en formular, kan du checke for commandolinie parametre i Form_Load eventen med:

If Command() <> "" Then
  ...udfør søgning eller hvad det nu er du vil...
End If

Check iøvrigt hjælpen til Access. Der er rimelig god dokumentation af dette emne.

Philip
Avatar billede dadane Novice
21. maj 2000 - 21:17 #3
Philiph:

Jeg er ikke helt sikker på at jeg forstår hvad du skriver, jeg prøver lige at fortælle hvordan jeg læser det, så kan du kommentere det.

Du kan godt lave en søgning i Access. Hvis du skriver /cmd vil resten blive af dine parametre blive 'overført' til Access.

I din Access database (MineVenner.db) skal du så have lavet et Visual Basic Script som forstår dine parametre.

Er det korrekt?

Hvis ja kan du så fortælle mig præcis hvad der skal stå i dette lille VB script? - Og hvordan jeg indsætter det i min Access database.

(Ja undskyld hvis jeg er _meget_ begynder i dette her).

/DaDane
Avatar billede philiph Nybegynder
21. maj 2000 - 22:52 #4
Du har forstået det helt korrekt.

Hvis du f.eks. kaldte access med telefonnummeret'en på en record du vil have vist:
MSAccess.exe MineVenner.mdb /cmd 21212121

Og lægger følgende event ind på åbningsformularen:
Private Sub Form_Load()
  If Command() <> "" Then
    Me.Filter = "Tlf= '" & Command() & "'"
    Me.FilterOn = True
  End If
End If

Vil recorden med telefonnummer 21212121 blive vist.

Philip
Avatar billede dadane Novice
22. maj 2000 - 10:50 #5
Philiph: Tak for dine svar! Jeg er dog stadig ikke helt med.

Hvordan lægger jeg en "event ind på åbningsformularen"?

Hvordan bestemmer jeg hvilken formular (hvis jeg har flere) der er åbningsformularen?

/DaDane
Avatar billede philiph Nybegynder
22. maj 2000 - 22:16 #6
Du lægger events ind på en formular ved at åbne dformularen i design mode, vælge egenskaber (evt. via højreklik), vælge fanen Events (eller hvad det nu er den hedder på Dansk), og finde On Form Load (Dansk: "Ved Åbning" eller sådan noget), og trykke på den lille knap med de 3 punktummer til højre for indtastningsfeltet. Dette vil åbne VBA modulet bag formularen. Alt hvad du skriver heri skal være VB kode, så der er en del du skal lære.

Starop formularen vælges ved at på databasevinduet højreklikke et eler andet sted på den grå kant udenfor listen over objekter, vælge Startup, og i kombinationsboksen vælge den ønskede formular. Som du kan forstå, har jeg kun en Engelsk Access, så jeg ved ikke præcis hvad menupunktet hedder.

Philip
Avatar billede dadane Novice
24. maj 2000 - 11:41 #7
Tak for hjælpen Philiph,

Nu nærmer vi os (Jubii!)

Men det virker ikke helt endnu. :-(

Det er lykkedes mig at lave en Hændelse (Event) "Ved Indlæsning" (On Load). Men den kommer med en fejlmelding.

Når jeg ved de tre prikker vælger 'Kode Generator' skriver den selv en smule kode, bl.a. den første linje som du skrev:

Private Sub Form_Load()

Jeg tror at scriptet skal slutte med:
End Sub i stedet for End If

Derudover brokker den sig over:

Me.FilterON = True

Den kommer med en "Fejlkørsel 2001": Du har annulleret forrige handling.
Avatar billede philiph Nybegynder
24. maj 2000 - 07:19 #8
Tjaaa... bum bum bum.

I min kode skrev jeg:
Me.Filter = "Tlf= '" & Command() & "'"

Den linie går ud fra at du har et tekst felt der hedder Tlf. Har du rettet det til navnet på feltet i din tabel? Er det et tekstfelt? Ellers skal du fjerne "plingerne" (') fra udtrykket.

Angående Events: Når du laver en onload event, så laver den selv koden:

Private Sub Form_Load()

End Sub

og stiller cursoren så du kan begynde indtastningen at koden, og det er helt korrekt kode. Sub hører sammen med End Sub. At jeg i min kode har kommet til at skrive "End If" istedet for "End Sub" viser bare at ingen er fuldkommen... ;) Undskyld forvirringen.

Philip
Avatar billede philiph Nybegynder
13. august 2000 - 19:24 #9
Har du fået det til at virke?
Avatar billede dadane Novice
15. august 2000 - 07:21 #10
Nej, jeg kan ikke rigitgt komme videre.
Avatar billede philiph Nybegynder
16. august 2000 - 16:54 #11
Send mig basen på: philiph@mail.tele.dk, så kikker jeg på den.

Philip
Avatar billede dadane Novice
10. april 2002 - 11:54 #12
Lukket
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