Avatar billede piphans Nybegynder
10. januar 2001 - 11:59 Der er 8 kommentarer og
1 løsning

Ved ikke på liste - tilføj record til tabel Access 2000

Jeg har lavet en kobinationsboks der slår en værdi op i en anden (relateret) tabel. Jeg kunne godt tænke mig at hvis der skrives noget i kombinationsboksen der ikke er på listen, så skal tabellen åbnes, så man kan tilføje den pågældende post.

Det går også fint med \"Not on list\" hvor jeg laver en macro der åbner tabellen, men når jeg så vender tilbage til formularen kan jeg ikke finde ud af at få genforspurgt på kombinationsboksen så jeg kan se den ny post i kombinationsboksen.

Nogen forslag?
Avatar billede macjensen Nybegynder
10. januar 2001 - 12:17 #1
du skal nok i vba og lave noget lignende dette her:

Sub ???_NotInList (newdata As String, response As Integer)
Dim strMsg As String
Dim rst As Recordset
Dim db As Database
Const MB_YESNO = 4
Const MB_QUESTION = 32
Const IDNO = 7

strMsg = \"\'\" & newdata & \"\' er ikke i listen.\"
strMsg = strMsg & \"Vil du tilføje løbsarten?\"
If MsgBox(strMsg, MB_YESNO + MB_QUESTION, \" ??? \") = IDNO Then
response = DATA_ERRDISPLAY
Else
Set db = DBEngine.Workspaces(0).Databases(0)
Set rst = db.OpenRecordset(\"T_LøbsArt\")

rst.AddNew
rst(\" ??? \") = newdata
rst.Update
response = DATA_ERRADDED
End If
End Sub
Avatar billede macjensen Nybegynder
10. januar 2001 - 12:20 #2
T_LøbsArt erstattes med dit eget recordset
Avatar billede piphans Nybegynder
10. januar 2001 - 12:47 #3
Tak, men jeg kan ikke få det til at virke

For det første accepteres typen database ikke, men dette kunne rettes ved at dimensionere som objekt.

Men næste fejl kan jeg ikke kringle. Den siger:
Type mismatch

Den tabel der skal tilføjes en post i har to felter. Et autonummereringsfelt og et tekstfelt.

Comboboksens bound column er den første (tal) men det der vises er tekst.

?????
Avatar billede poulh Nybegynder
10. januar 2001 - 17:02 #4
I stedet for at dim som objekt vil jeg forslå at du slår referencen til DAO objekt biblioteket til.
Avatar billede piphans Nybegynder
11. januar 2001 - 08:28 #5
Poulh

Ja - det fandt jeg også selv ud af, men det virker stadig ikke. Nu fejler den i linjen:
Set rst = db.OpenRecordset(\"T_LøbsArt\")
Fejl = type mismatch

P
Avatar billede poulh Nybegynder
11. januar 2001 - 09:43 #6
Nu ved jeg ikke om du har slået ADO Bib fra hvis ikke du har det så prøv med.
Dim db as DAO.Database
Dim rst as DAO.Recordset


PoulH
Avatar billede piphans Nybegynder
11. januar 2001 - 10:08 #7
Jeg tror snart at jeg må opgive det her og bare erkende at min VBA viden slet ikke er god nok til at løse mit problem. Der er nok ikke andet for end at gå ud af formularen, oprette den nye post i den anden tabel og så åbne formularen igen.

Og så ellers melde sig til et VBA kursus!

:)
Avatar billede poulh Nybegynder
11. januar 2001 - 11:50 #8
Hvis ikke db\'en er for stor så prøv at send den til mig så skal jeg kikke på den.
phnielsen@jubiipost.dk

poulh
Avatar billede piphans Nybegynder
11. januar 2001 - 12:05 #9
Så - nu har jeg selv løst problemet.

I stedet for at tilføje en record direkte til tabellen, går jeg nu via en formular. Og det kan jeg få til at virke....

Piphans
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