Avatar billede region Nybegynder
25. juni 2001 - 20:23 Der er 22 kommentarer og
1 løsning

Findes data..??? HASTER

hvordan tjekker jeg via et lille VBA script om en tabel allerede eksisterer i en db.

noget med :

if exist \"tabelnavn\" then
xx
else
yy
end if
end sub
Avatar billede tdaugaard Nybegynder
25. juni 2001 - 20:27 #1
Det kan du ikke direkte.
Du kan lave det med error trapping.

On Error Resume Next

Set Rs = Conn.Execute(\"SELECT * FROM mintabel\")
If err <> 0 Then
  On Error Goto 0
  \' tabellen eksistere ikke
Else
  On Error Goto 0
  \' den eksisterer.
End If
Avatar billede region Nybegynder
25. juni 2001 - 20:28 #2
Jeg skal helst bruge en true eller false værdi.
Avatar billede tdaugaard Nybegynder
25. juni 2001 - 20:29 #3
det får du da bare:

On Error Resume Next

Set Rs = Conn.Execute(\"SELECT * FROM mintabel\")
bolExists = (err = 0)
On Error Goto 0

hvis tabellen eksisterer er bolExists True
Avatar billede tdaugaard Nybegynder
25. juni 2001 - 20:30 #4
du kan jo med fordel smide det i en funktion hvis du har brug for at bruge det flere gange eller mange gange.
Avatar billede region Nybegynder
25. juni 2001 - 20:34 #5
Hmmm....

min form hedder form1

ved load af denne vil jeg gerne i [Text1] i denne form have en true eller false værdi...

kan du hjælpe, når jeg nu er fatsvag her sidst på dagen....
Avatar billede tdaugaard Nybegynder
25. juni 2001 - 20:36 #6
Se følig da :-)

Private Sub Form_Load ()
    On Local Error Resume Next

    Set Rs = Conn.Execute(\"SELECT * FROM mintabel\")
    Text1.Text = (err = 0)
    On Local Error Goto 0
End Sub

Såådan :-)
Avatar billede region Nybegynder
25. juni 2001 - 20:43 #7
hmm. virker ikke... variable not defined..

jeg skylder måske at sige at det access 97.
Avatar billede region Nybegynder
25. juni 2001 - 20:47 #8
hallo...
Avatar billede tdaugaard Nybegynder
25. juni 2001 - 20:49 #9
Sorry . .så ikke lige mailen ..

Du skal liige sætte lidt database connection sjov ind .. men vhis du gerne vil have det på et sølvfad :

Private Sub Form_Load ()
    Dim Conn, Rs

    On Local Error Resume Next

    Set Conn = CreateObject(\"ADODB.Connection\")
    Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\\mindb.mdb\"
    Set Rs = Conn.Execute(\"SELECT * FROM mintabel\")
    Text1.Text = (err = 0)
    On Local Error Goto 0
End Sub
Avatar billede region Nybegynder
25. juni 2001 - 20:51 #10
Nu bliver det langhåret....

Det du skriver går vel ikke da det er en database der kan installeres på forskellige drev..

affødt af det du skriver :

....DBQ=C:\\mindb.mdb\"
   
Avatar billede tdaugaard Nybegynder
25. juni 2001 - 20:55 #11
hmm .. du kan skifte det ud .. f.eks. hvis du ved hvor den ligger (f.eks. hvis du har gemt stien vha. SaveSetting() eller en anden registry metode så kan du finde den derfra)
Avatar billede region Nybegynder
25. juni 2001 - 20:56 #12
Det er noget rigtigt PIS, for jeg fatter ikke en skid af det du skriver og det irreterer mig at jeg ikke ved mere om VB.

Det værste er at jeg kommer til at vedligeholde Db\'en hvis noget går galt aner jeg ikke om det er i dette script eller andre scripts når jeg ikke forstår VB....

Hva\' gør vi lige...hvad skal du have af point for din entusiasme...
Avatar billede tdaugaard Nybegynder
25. juni 2001 - 21:00 #13
Hmm ..se det skulle du have sagt (at du ikke ved så meget om VB) ;-)
Men hvad har du af kode i forvejen ? Eller har du slet intet ?

Mjae 100 point vil jeg da mene, jeg har givet dig svaret på dit spørgsmål ..
Avatar billede region Nybegynder
25. juni 2001 - 21:01 #14
Hm.
Avatar billede tdaugaard Nybegynder
25. juni 2001 - 21:03 #15
Men lad mig da lige hjælpe dig færdig ... hvad forstår du ikke ?
Avatar billede region Nybegynder
25. juni 2001 - 21:06 #16
som sagt det bliver ikke til at vedligeholde idet de forskellige URL hvor db\'en skal ligge på varierer fra land til land.

lad os glemme det da jeg løser det på anden måde.
Avatar billede tdaugaard Nybegynder
25. juni 2001 - 21:10 #17
Okay ..
Avatar billede fdata Forsker
26. juni 2001 - 00:03 #18
Hej Region.

Selv om du har lukket spm kan du da godt lige få rutinen:

Function FindesTabel(TabelNavn As String) As Boolean
  Dim T As TableDef
  CurrentDb.TableDefs.Refresh
  FindesTabel = False
  For Each T In CurrentDb.TableDefs
    If T.Name = TabelNavn Then
      FindesTabel = True
    End If
  Next T
End Function
Avatar billede tdaugaard Nybegynder
26. juni 2001 - 00:25 #19
fdata:> det kræver LIDT mere end det og kræver desuden ~8 MB ADO/DAO drivere med distributionen af ens program
Avatar billede fdata Forsker
26. juni 2001 - 01:24 #20
>>tdaugaard
Nej, det kræver ikke mere. Det kører fint i en standard Access97. Funktionen kan kaldes uden videre.
(Jeg forstår i øvrigt ikke, hvorfor du er røget ud i ASP øvelserne. Det er et enkelt Access VBA spm)

>>region
Fik du løst problemet?
Avatar billede region Nybegynder
26. juni 2001 - 08:43 #21
fdata:

Både og... jeg har lavet en masse krumspring og finurliheder for at løse det.

Jeg vil dog meget hellere kunne kontrollere om en tabel findes eller ej.

Jeg vil gerne prøve dit script...
Avatar billede mikker Nybegynder
28. juni 2001 - 18:46 #22
tdaugaard>> Som altid en fornøjelse...

Men jeg har lige et spørgsmål med hensyn til nedenstående:

Jeg stjæler lidt fra eksemplet ovenfor:

-- Cut ---

    Set Conn = CreateObject(\"ADODB.Connection\")
    Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=C:\\mindb.mdb\"

-- Cut ---

Så vidt jeg lige kan se med mine lidt trætte øjne kan det ikke lade sig gøre at udskifte DBQ=C:\\... med eksempelvis lala$
Tager jeg helt fejl?
Avatar billede mikker Nybegynder
28. juni 2001 - 18:48 #23
Er mit spg helt volapyk? :-)

- Mikker
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
Kurser inden for grundlæggende programmering

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