Avatar billede -anders- Juniormester
15. juni 2003 - 14:17 Der er 31 kommentarer og
3 løsninger

Opret tabel med tre kolonner ved brug af vbakode

Hej eksperter
Jeg har en form "fmLogIn" på denne form har jeg tre felter "Bruger" "Adgangskode" "Sikkerhedskode". Når jeg har indtastet data i de tre ovenstående felter klikker jeg på en knap i min form.Når jeg klikker ønsker jeg at oprette en tabel som skal hedde tblLogIn, tabellen skal oprettes med de tre felter "Bruger" "Adgangskode" "Sikkerhedskode" felterne skal blot være af typen "Tekst". Når tabellen er oprettet skla der oprettes en post med de oplysninger jeg har tastet i de tre felter i min form.

Hvis tabellen tblLogIn findes i forvejen skal den blot overskrives uden at der vises en advarsel.

Kan dette lade sig gøre

mvh Anders
Avatar billede -anders- Juniormester
15. juni 2003 - 14:19 #1
Glemte lige at nævne jeg arbejder i access2000
Avatar billede henrik13 Nybegynder
15. juni 2003 - 14:38 #2
Private Sub Kommandoknap0_Click()
DoCmd.SetWarnings False

Dim SQL As String
SQL = "CREATE TABLE tblLogIn( txt Bruger, txt Adgangskode, txt Sikkerhedskode)"
DoCmd.RunSQL SQL
    DoCmd.SetWarnings True
End Sub
Avatar billede -anders- Juniormester
15. juni 2003 - 14:45 #3
Hej Henrik
Tak for indlægget, din koder kender jeg, problemet er at få oprettet en post i tabellen som indeholder de oplysninger jeg har tastet i felterne i min form, nogen ideer
Anders
Avatar billede henrik13 Nybegynder
15. juni 2003 - 14:53 #4
Hvad er de 3 felter opretted som. Det jeg tænker på er at sende dem over med send keys for CTRL + B x 3    :o)
Avatar billede -anders- Juniormester
15. juni 2003 - 14:59 #5
Hej
Nej sendkeys er desværre ikke optimalt i denne db, jeg mener at jeg har set en kode her på eksperten som gør det jeg ønsker, men kan ikke finde den
Anders
Avatar billede henrik13 Nybegynder
15. juni 2003 - 15:01 #6
>>aandersen
Hvad er de 3 felter opretted som.
Vh Henrik13
Avatar billede -anders- Juniormester
15. juni 2003 - 15:03 #7
Well
Det er tre tekstfelter
Avatar billede jkrons Professor
15. juni 2003 - 15:17 #8
Denne kode opretter tabellen hvis den ikke allerede findes og indsætter værdierne fra formularen. Hvis tabellern allerede er oprettet indsættes værdierne som en ny post i tabellen:

Private Sub Kommandoknap4_Click()

DoCmd.SetWarnings False

  Dim SQL As String
  Dim SQL2 As String
  Dim SQL3 As String
  Dim f1 As String
  Dim f2 As String
  Dim f3 As String
  On Error Resume Next
    SQL = "CREATE TABLE tblLogIn( Bruger text, Adgangskode text, Sikkerhedskode text)"
    DoCmd.RunSQL SQL
    f1 = Me!Bruger
    f2 = Me!Adgangskode
    f3 = Me!Sikkerhedskode
    sql3 = "Values(" & "'" & f1 & "'" & "," & "'" & f2 & "'" & "," & "'" & f3 & "'" & ")"
    SQL2 = "INSERT INTO tbllogin(bruger, adgangskode, sikkerhedskode)" & sql3
    DoCmd.RunSQL SQL2
    DoCmd.SetWarnings True

End Sub
Avatar billede terry Ekspert
15. juni 2003 - 15:17 #9
Private Sub Kommandoknap0_Click()
Dim SQL As String

  DoCmd.SetWarnings False

  SQL = "CREATE TABLE tblLogIn( txt Bruger, txt Adgangskode, txt Sikkerhedskode)"
  DoCmd.RunSQL SQL

  SQL = "INSERT INTO tblLogIn VALUES ( '" & me.Bruger & "', " & me.Adgangskode & "', " & me.Sikkerhedskode & "')"
  DoCmd.RunSQL SQL
  DoCmd.SetWarnings True
End Sub
Avatar billede terry Ekspert
15. juni 2003 - 15:20 #10
and you can add On Error Resume Next
so as not to see any error if teh table exists
Avatar billede -anders- Juniormester
15. juni 2003 - 15:20 #11
Hej
Tak for indlæggende, tester og vender tilbage hurtigst muligt

Anders
Avatar billede -anders- Juniormester
15. juni 2003 - 15:23 #12
Terry:
Har testet dit forslag, dem kommer med fejl 3292, syntaksfejl i feltdefination?
Nogen ideer
Avatar billede -anders- Juniormester
15. juni 2003 - 15:31 #13
Okay nedenstående kode opretter tabellen, men den kan ikke overskive,slette tblLogin hvis den findes i forvejen.

Dim SQL As String

  DoCmd.SetWarnings False

  SQL = "CREATE TABLE tblLogIn( Bruger text, Adgangskode text, Sikkerhedskode text)"
  DoCmd.RunSQL SQL

Anders
Avatar billede terry Ekspert
15. juni 2003 - 15:31 #14
SQL = "CREATE TABLE tblLogIn( Bruger text, Adgangskode text, Sikkerhedskode text)"
Thats what happens with CUT and PASTE withouit checking :o)
Avatar billede terry Ekspert
15. juni 2003 - 15:32 #15
DoCmd.SetWarnings False

ON error resume next

  SQL = "CREATE TABLE tblLogIn( Bruger text, Adgangskode text, Sikkerhedskode text)"
  DoCmd.RunSQL SQL
Avatar billede -anders- Juniormester
15. juni 2003 - 15:35 #16
>>jkrons
Jeg har nu tetstet din kode og den virker sådan set, men jeg ønsker at der altid kun er en post i tabellen, nemlig den aktuelle når der klekkes på knappen i formen, kan din tilerettes så dette kan lade sig gøre?
Anders
Avatar billede -anders- Juniormester
15. juni 2003 - 15:36 #17
terry:
Thanks, tester stadig på dit forslag

Anders
Avatar billede terry Ekspert
15. juni 2003 - 15:37 #18
"DELETE * FROM tblLogIn"
Avatar billede -anders- Juniormester
15. juni 2003 - 15:38 #19
Okay tester videre, det hårt arbejde dette her *SSS*
Anders
Avatar billede terry Ekspert
15. juni 2003 - 15:39 #20
Private Sub Kommandoknap0_Click()
Dim SQL As String

  DoCmd.SetWarnings False

  ON error resume next


  SQL = SQL = "CREATE TABLE tblLogIn( Bruger text, Adgangskode text, Sikkerhedskode text)"
  DoCmd.RunSQL SQL
Docmd.runsql "DELETE * FROM tblLogin"
  SQL = "INSERT INTO tblLogIn VALUES ( '" & me.Bruger & "', " & me.Adgangskode & "', " & me.Sikkerhedskode & "')"
  DoCmd.RunSQL SQL
  DoCmd.SetWarnings True
End Sub

Docmd.runsql "DELETE * FROM tblLogin"
Avatar billede terry Ekspert
15. juni 2003 - 15:40 #21
delete the last line of my example :o)
Avatar billede henrik13 Nybegynder
15. juni 2003 - 15:40 #22
Brug jkrons og set forand, for at slette gamle data:
CurrentDb.Execute "DELETE FROM tblLogIn
Avatar billede henrik13 Nybegynder
15. juni 2003 - 15:43 #23
Den skal se sådan ud:
Private Sub Kommandoknap4_Click()

DoCmd.SetWarnings False
CurrentDb.Execute "DELETE FROM tblLogIn
  Dim SQL As String
  Dim SQL2 As String
  Dim SQL3 As String
  Dim f1 As String
  Dim f2 As String
  Dim f3 As String
  On Error Resume Next
    SQL = "CREATE TABLE tblLogIn( Bruger text, Adgangskode text, Sikkerhedskode text)"
    DoCmd.RunSQL SQL
    f1 = Me!Bruger
    f2 = Me!Adgangskode
    f3 = Me!Sikkerhedskode
    sql3 = "Values(" & "'" & f1 & "'" & "," & "'" & f2 & "'" & "," & "'" & f3 & "'" & ")"
    SQL2 = "INSERT INTO tbllogin(bruger, adgangskode, sikkerhedskode)" & sql3
    DoCmd.RunSQL SQL2
    DoCmd.SetWarnings True

End Sub
Avatar billede terry Ekspert
15. juni 2003 - 15:55 #24
Private Sub Kommandoknap0_Click()
Dim SQL As String

  DoCmd.SetWarnings False

  ON error resume next


  SQL = SQL = "CREATE TABLE tblLogIn( Bruger text, Adgangskode text, Sikkerhedskode text)"
  DoCmd.RunSQL SQL
Docmd.runsql "DELETE * FROM tblLogin"
  SQL = "INSERT INTO tblLogIn (bruger, adgangskode, sikkerhedskode) VALUES ( '" & me.Bruger & "', " & me.Adgangskode & "', " & me.Sikkerhedskode & "')"
  DoCmd.RunSQL SQL
  DoCmd.SetWarnings True
End Sub
Avatar billede henrik13 Nybegynder
15. juni 2003 - 15:56 #25
Rettelse, manglede et " Demo kan sendes:

Private Sub Kommandoknap4_Click()

DoCmd.SetWarnings False
CurrentDb.Execute "DELETE FROM tblLogIn"
  Dim SQL As String
  Dim SQL2 As String
  Dim SQL3 As String
  Dim f1 As String
  Dim f2 As String
  Dim f3 As String
  On Error Resume Next
    SQL = "CREATE TABLE tblLogIn( Bruger text, Adgangskode text, Sikkerhedskode text)"
    DoCmd.RunSQL SQL
    f1 = Me!Bruger
    f2 = Me!Adgangskode
    f3 = Me!Sikkerhedskode
    sql3 = "Values(" & "'" & f1 & "'" & "," & "'" & f2 & "'" & "," & "'" & f3 & "'" & ")"
    SQL2 = "INSERT INTO tbllogin(bruger, adgangskode, sikkerhedskode)" & sql3
    DoCmd.RunSQL SQL2
    DoCmd.SetWarnings True

End Sub
Avatar billede -anders- Juniormester
15. juni 2003 - 15:59 #26
Hej
Jeg har fået det til at virke og fordelt points, men er ikke sikker på at det er registreret, har i fået point??

Anders
Avatar billede henrik13 Nybegynder
15. juni 2003 - 16:01 #27
>> ja og tak for poient.  :o)
Avatar billede terry Ekspert
15. juni 2003 - 16:06 #28
:o)
Avatar billede -anders- Juniormester
15. juni 2003 - 16:08 #29
Hæ hæ, jeg er på fastnetforbindelse på mit inernet 45megabit, det går nogen gange så hurtigt at man kan blive i tvil.
Avatar billede -anders- Juniormester
15. juni 2003 - 16:12 #30
Foresten hvad skulle jeg nu bruge alt dette til JO:

Jeg er ved at lave mit eget brugerlogin til db, istedet for at bruge den indbyggede. Når der opprettes brugere for de en sikkerhedskode feks. 1 læseadgang e.t.c.Når en bruger så køre på db,en spørger jeg via feks. DlookUp havd den den aktuelle sikkerkode er, og på denne måde styre hvem der kan havd feks. oprette slette. Bloe en lille forklaring,

*SSS*
Anders.
Avatar billede henrik13 Nybegynder
15. juni 2003 - 16:16 #31
>> aandersen
Nu forstår jeg slet ingenting, du sletter jo login'en ved næste logind???  :o(
Avatar billede -anders- Juniormester
15. juni 2003 - 16:25 #32
Præcis
db er jo delst i frontend og backend, forstil dig at frontend er installeret på en pc der bliver det af flere brugere, på denne måde kan jeg altid forspørge på sikkerhedskoden på det aktuelle login da tblLogin altid indeholder op lysninger om den aktuelle bruger, Tabellen bruges jo ikke til nogen form historik-
Anders
Avatar billede -anders- Juniormester
15. juni 2003 - 16:26 #33
tblLogin findes jo ikke backend, men kun i frontend
Avatar billede henrik13 Nybegynder
15. juni 2003 - 16:27 #34
Den var smart.  :o)
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