Avatar billede theofilos Nybegynder
20. juni 2003 - 11:18 Der er 21 kommentarer og
1 løsning

Brugeroplysninger - variable data i opslagstabeller

I en database ønsker jeg at give brugerne mulighed for selv at definere visse data i opslagstabeller. Dette skal enten foregå ved at oprette en knap med en handling "ved klik" eller også skal det kunne vælges i menuen øverst...

Ex:

I et formularfelt (liste eller komb.boks) - baseret på en opslagstabel med navnet "Sted" - skal brugeren selv kunne definere forskellige arbejdssteder (Ubberodløse plejehjem, Sindal dækservice, Lokalavisen etc. etc.

Med andre ord en brugervenlig ændring af en tabels indhold...

Hvordan kan dette gøres mest hensigtsmæssigt, så bruger ikke selv skal sætte sig ind i Access?

Da det nok er et omfattende spørgsmål, sætter jeg 150 points på spil, som så kan fordeles, når jeg har fået det til at virke.

Mvh

Theofilos
Avatar billede juks Novice
20. juni 2003 - 11:29 #1
kan du ikke bare lave en formular der vise dataerne i tabellen også lave nogle knapper til at oprette nye og rette de gamle.
(det er det man bruger formulare til :-) )
Avatar billede juks Novice
20. juni 2003 - 11:30 #2
du kan evt lave en kode der ved dobbelt_klik åbner den formular du laver som dialogboks
Avatar billede theofilos Nybegynder
20. juni 2003 - 11:32 #3
Kære Juks

Jo, jeg kan da bare lave det, jeg gerne vil lave... Det er jo nemt nok, ikke?

Tak for svaret, hæhæ

Har du et konkret forslag?
Avatar billede juks Novice
20. juni 2003 - 11:35 #4
ja den forspøgelse du bygger din liste på den bruger du til at lave en formular , du kan jo evt bruge guiden formular.
hvis du har lavet din sql direkte i listen kan du åbne den og trykke "save" så kan du gemme den som en forspørgelse og derefter bruge den til at lave din formular.
Avatar billede rosco Novice
20. juni 2003 - 11:39 #5
Indsæt denne kode i en komboboks ved hændelsen Vedikkepåliste

Private Sub Kategori_NotInList(NewData As String, Response As Integer)
On Error GoTo err_Kategori_NotInList

    Dim ctl As Control
    Dim strSQL As String
       
    ' Returner markeringen til combo box.
    Set ctl = Me!Kategori
    ' Anmoder brugeren bekræfte at ny data skal tilføjes.
    If MsgBox("Kategorien er ikke på listen, skal den tilføjes?", vbOKCancel) = vbOK Then
        ' Set Response argument, for at vise at data bliver tilføjet.
        Response = acDataErrAdded
        ' Tilføj tekst til ny post i kategori tabellen.
        NewData = Proper(NewData)
        strSQL = " INSERT INTO Kategori ( Kategori ) SELECT '" & Proper(NewData) & "'"
        DoCmd.SetWarnings False
        DoCmd.RunSQL strSQL
        ctl.Value = NewData
        DoCmd.SetWarnings True
    Else
        ' Hvis bruger vælger Cancel, udelad fejlmeddelelse og slet ændringer.
        Response = acDataErrContinue
        ctl.Undo
    End If
       
exit_Kategori_NotInList:
    Exit Sub
   
err_Kategori_NotInList:
    If Err = 2113 Then
        Err = 0
        Resume Next
    Else
        MsgBox Str(Err)
        MsgBox Err.Description
        Resume exit_Kategori_NotInList
    End If
End Sub

Hvis brugeren indtaster noget som ikke er i tabellen bliver vedkommende spurgt er ikke på listen, skal den tilføjes?
Avatar billede juks Novice
20. juni 2003 - 11:39 #6
du er meget velkommen til at sende din database til mig så skal jeg prøve at lave det til dig..
Avatar billede rosco Novice
20. juni 2003 - 11:39 #7
Det var et svar
Avatar billede rosco Novice
20. juni 2003 - 11:41 #8
Jeg har eksempeldb der viser hvordan det er brugt
Avatar billede rosco Novice
20. juni 2003 - 11:44 #9
Hvis du lægger din mailadresse skal jeg nok sende det.
Avatar billede theofilos Nybegynder
20. juni 2003 - 11:51 #10
Tak for tilbuddet, Juks. Det var sødt af dig. Men jeg vil helst selv lave det, så jeg bevarer overblikket helt.

Rosco.. den eksempeldatabase vil jeg meget gerne se. Du kan sende den på nbo@mail.dk - men lav extension om til txt eller zip - ellers kommer den ikke frem til mig (jeg er på netværk).

Mvh

Theofilos
Avatar billede rosco Novice
20. juni 2003 - 12:00 #11
Er sendt.
Avatar billede theofilos Nybegynder
20. juni 2003 - 12:48 #12
Jo, Rosco...

Den kan vel bruges til det, jeg vil.... Men jeg havde forestillet mig, at man også kunne FJERNE data fra opslagstabellen... Hvordan det mon?
Avatar billede rosco Novice
20. juni 2003 - 13:04 #13
Du laver en formular baseret på opslagstabellen
Og indsætter feltet "Sted".

I din Komboboks , ved Dobbeltklik indsætter du denne kode

On Error GoTo Err_Kommandoknap97_Click

    Dim stDocName As String
    Dim stLinkCriteria As String
    'Åbner formularen Retsletsted
    stDocName = "RetsletSted"
    DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Kommandoknap97_Click:
    Exit Sub

Err_Kommandoknap97_Click:
    MsgBox Err.Description
    Resume Exit_Kommandoknap97_Click

Lav en sletknap i formularen med denne kode.

Private Sub SletPost_Click()
On Error GoTo Err_SletPost_Click


    DoCmd.SetWarnings False        'Sted er navnet på feltet
  If MsgBox("Vil du slette stedet " + vbLf + Me.Sted + vbLf + "Sletning kan ikke fortrydes!", _
      vbQuestion + vbYesNo + vbQuestion + vbDefaultButton2, _
      "Slette ?") = vbYes Then
    DoCmd.RunCommand acCmdSelectRecord
    DoCmd.RunCommand acCmdDeleteRecord
  End If
    Me.Requery
   
Exit_SletPost_Click:
DoCmd.SetWarnings True
    Exit Sub

Err_SletPost_Click:
    MsgBox Err.Description
    Resume Exit_SletPost_Click
   
End Sub
Avatar billede rosco Novice
20. juni 2003 - 13:06 #14
RetSletSted, er tænkt som navnet på formularen
Avatar billede theofilos Nybegynder
20. juni 2003 - 13:35 #15
WOW.... Hvor har du det fra??

Jeg bli'r en smule svimmel... Feltet "slet" i den nye formular.... Er det en tekstboks, en komb.boks eller hvad? I hvilken af formularerne placeres slet-knappen?

Og endelig... HVad hvis der er mange opslagstabeller knyttet til hovedformularen, som skal defineres af brugeren... er dette så den bedste løsning? (ex: Sted..  Tid)
Avatar billede rosco Novice
20. juni 2003 - 13:46 #16
Har du mulighed for at sende mig din db.
Ikkke fordi jeg vil lave det for dig, men så ved jeg bedre hvad du skal bruge og gøre.
Min mail er erlenbach@adslhome.dk
Avatar billede rosco Novice
20. juni 2003 - 13:53 #17
Mange af de løsninger løsninger jeg bruger, har jeg fundet her på Eksperten.
Der en udemærket søgefunktion, Fritekst søgning.
Avatar billede rosco Novice
20. juni 2003 - 14:12 #18
har sendt en eksempeldb med slet og ret funktion indbygget.
Avatar billede rosco Novice
20. juni 2003 - 18:01 #19
Dine relationer ville have givet dig problemer med at opdatere listerne
eks. relationen mellen tbl Kirker og grundtabel
skal gå mellem id.kirker og kirke.grundtabel.

Forespørgslen skal indeholde både id og kirke
med id som første kolonne.

Egenskaben for Komboboksen skal så være
Data:    Bundet kolonne    1

Formatér    AntalKolonner    2
    Kolonnebredder    0cm;3cm   

De andre kombobokse skal også ændres
Avatar billede rosco Novice
21. juni 2003 - 09:11 #20
Felterne i din grundtabel som relationerne skal knyttes til skal formatéres til tal-felter ikke tekst.
Avatar billede theofilos Nybegynder
21. juni 2003 - 11:23 #21
Tak, Rosco ! ! !

Problemet er løst - og jeg kan også få glæde af dit svar i andre databaser.

Mvh

Theofilos
Avatar billede rosco Novice
21. juni 2003 - 11:38 #22
Glæder mig at jeg kunne hjælpe.
En sidste bemærkning Dine primærnøgler bør hedde mere end ID, hvis du får brug for at henvise til en primærnøgle vil din db ikke kunne vide hvilken, hvis der er mere end en i en forespørgsel.
fortsat god fornøjelse.
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