Avatar billede rubato Nybegynder
29. juni 2001 - 22:25 Der er 3 kommentarer og
1 løsning

opdatere manglende elementer på listen

Jeg har en enkelt teksttabel som støtter brugerne i at taste tekstfeltet i en transaktionstabel. Det går fint så længe de ønskede tekster findes i teksttabellen, men det er besværligt når der mangler et element...skal lukke formularen, åbne teksttabellen, opdatere den og gå tilbage til transaktionsformularen.
Teksttabellen indeholder kun tekstfeltet som samtidig er nøgle.

Er der en som kan foreslå en smart udvej.

På forhånd tak
Rubato
Avatar billede mugs Novice
29. juni 2001 - 23:53 #1
Hvis elementet ikke findes i teksttabellen, er der vel ingen anden udvej end at tilføje det.

du kan lave en kommandoknap på transaktionsformularen og i knappens \"Ved klik\" event indsætte flg. kode.

Docmd.OpenTable \"teksttabel\"

Det kan dog forfines lidt, ved at lave formular der er baseret på teksttabellen. Du skal så i transaktionsformularen laver en kommandoknap med koden:

Docmd.OpenForm \"formularnavn\", acnormal, \"\", \"\", asAdd, acNormal

der åbner formularen og kun tillader indtastning af en ny post. På denne formular laver du en ny kommandoknap og tilføjer flg.kode i knappens \"Ved klik\" Event:

Docmd.Close

som lukker det aktive databaseobjekt (formularen) og vender tilbage til sted du kom fra.

Mvh / mugs
01. juli 2001 - 18:31 #2
Hej Rubato,

Jeg går ud fra, at du benytter en Kombinationsboks som opslag?

KOmbinationsbokse har en egenskab, som hedder \"Begræns til liste\", denne skal være sat til \"Ja\" (hvad den nok også er)

Ligeledes har du hændelse, som hedder \"VedIkkePåListe\", her lægger du følgende kode:

Private Sub Tekstfelt_NotInList(NewData As String, Response As Integer)
    If Msgbox(\"Du har indtastet en tekst, som ikke findes i forvejen!@@Vil du oprette den nye tekst?\", vbQuestion + vbYesNo + vbDefaultButton2, \"Ny tekst?\") = vbYes Then
            currentdb.Execute \"INSERT INTO [Teksttabel]( Tekst ) SELECT \'\" & NewData & \"\';\"
            Response = acDataErrAdded
    Else
        Response = acDataErrContinue
    End If
End Sub

Jeg har benyttet tabelnavnet \"Teksttabel\" og feltnavnet \"Tekst\". Disse skal naturligvis udskiftes, så det passer med din egen tabel!

/Thomas
01. juli 2001 - 22:53 #3
(...fortsat)

Jeg glemte lige at sige, at koden benytter DAO, så hvis du arbejder i Access 2000 eller XP, skal du lave en reference til \"Microsoft DAO 3.6 Object Library\"

/Thomas
Avatar billede rubato Nybegynder
30. juli 2001 - 13:08 #4
Kære hjælpere - jeg har selv fundet en utrolig simpel løsning. Jeg har teksttabellen og en tabel med tekst og diverse andre felter. Her opretter jeg tekstfeltet vha. Guiden. Jeg opretter ikke nogen relation. Når brugerne nu forsøger at indtaste en tekst som ikke findes i teksttabellen taster de blot direkte ind i feltet og de får ingen info om at det er en hidtil ukendt tekst.

Når brugeren lukke formularen har jeg oprettet en hændelsesprocedure som opretter de nye elementer i teksttabellen, så de eksisterer næste gang der bliver brug for det.

tak for jeres assistance.
Rubato
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