Avatar billede jubas Nybegynder
15. oktober 2003 - 23:04 Der er 16 kommentarer og
2 løsninger

Oprettelse af ny tabel ud fra poster i en tabel

Hej er der nogen der kan hjælpe mig
Jeg har en Access database med en tabel der hedder : t_vare. I tabellen har jeg to felter som til sammen danner primær nøglen ” varenavn ” ”varegruppe ”
Når jeg har lagt poster ind i tabellen  (varenavn: franskbrød , varegruppe: Brød) begge er af typen Tekst.
Nu kommer vi til det det helle handler om , kan det lade sig gøre i Access at få lave en ny tabel ud fra posterne i tabellen vare,  så feltnavne  i den nye tabel bliver det samme som posterne i  tabellen vare
Ny  tabel ( felt navn: franskbrød , feltnavn: Brød )elle bare et af felterne  ( feltnavn: franskbrød)
Avatar billede kongsteddk Nybegynder
15. oktober 2003 - 23:14 #1
Hvis jeg ikke har misforstået det hele, kan det ikke lade sige gøre og oprette tabeller med kommandoer i Access - det er "straffen" for at bruge en så "lille" en db.
Alternativt skal du bruge MySQL el. MSSQL, der kan det lade sige gøre ud fra kommandoer / scripts.
Avatar billede henrik13 Nybegynder
15. oktober 2003 - 23:22 #2
Jeg ser kun en løsning. Opret tabellen manuelt. Derefter gemmer du de 2 gamle tabeller, ved at exporterte det som semikolon filer. Ved manuel tmport kan du vælge at kører dem i en existerende tabel, Når du har gjort dette skal dine data  ligge, som du ville havde dem.
Vh Henrik
Avatar billede erikjacobsen Ekspert
15. oktober 2003 - 23:23 #3
Det kan man nu nok, men det skal du ikke. Du skal lave dit system, så
det ikke er nødvendigt at oprette nye tabeller. (Vink: man kan sagtens,
det gør alle andre)
Avatar billede jubas Nybegynder
15. oktober 2003 - 23:59 #4
Hej kongsteddk tak for det hurtigt svar.
Avatar billede jubas Nybegynder
16. oktober 2003 - 00:00 #5
Hej henrik13
jeg forstå det ikke helt prøv at udybe det lidt.
Avatar billede hekla Nybegynder
16. oktober 2003 - 00:01 #6
Hvorfor vil du oprette den nye tabel???. Hvis du har mange poster, får du for mange felter. Hvis du ikke har mange poster, kan du gøre det manuelt.
Avatar billede jubas Nybegynder
16. oktober 2003 - 00:02 #7
hej erikjacobsen
det kan jeg også sagtens men hvis der  var en lette måde skade jo ikke at prøve  tabele som skal laves skal indholde ca 200 felter så du forståt mig måske nu
Mvh
jubas
Avatar billede erikjacobsen Ekspert
16. oktober 2003 - 00:04 #8
Nej, det skal den ikke. Du skal ikke tænke på at lægge din tabel
"vandret", men "lodret". Gør dig selv den tjeneste at lære noget
databaseteori en gang ;)
Avatar billede henrik13 Nybegynder
16. oktober 2003 - 00:27 #9
>>jubas
Prøv at sende de to tabeller til mig, så skal jeg se på dem, Men det er rigtigt som erikjacobsen skriver, det giver mange felter og må frarådes, min E-mail adresse er:
oz1bua@wanado.dk
Avatar billede jubas Nybegynder
16. oktober 2003 - 00:32 #10
hej erikjacobsen
så vidt jeg ved ligger poster (Recordset)lodret og da det er dem der skal
omdannes til et nyt feltnavn i den nye tabel  vil jeg da gå stærkt ud fra at de kommer til at ligge vandret.
Avatar billede erikjacobsen Ekspert
16. oktober 2003 - 00:37 #11
Det er ikke det jeg mener - men husk databaseteorien...
Avatar billede henrik13 Nybegynder
16. oktober 2003 - 00:40 #12
Avatar billede jubas Nybegynder
16. oktober 2003 - 01:01 #13
hej henrik13
jeg kan desværre ikke send til ig på den mail adresse komme ikke igennem.er den rigtig ?
Avatar billede henrik13 Nybegynder
16. oktober 2003 - 01:03 #14
Ja. rettelse:
oz1bua@wanadoo.dk
Der smuttede et o
Avatar billede jubas Nybegynder
16. oktober 2003 - 01:11 #15
hej henrik13
jeg har sendt den til dig.
og tak for henvisning til den side om databasteori.
Der var ikke noget nyt.har arbejde med Access i en del år.
men elleres tak
Avatar billede henrik13 Nybegynder
16. oktober 2003 - 03:34 #16
>>jubas
Det kan ikke lade sig gøre i access.
Avatar billede jubas Nybegynder
17. oktober 2003 - 00:25 #17
Hej Henrik13
Jo det kan!!! Prøv at se på det her det virker

Public Sub OpretTabel()

Dim dbs As Database
Dim tdfNew As TableDef
Dim fldLoop As Field
Dim prpLoop As Property
Dim rst As Recordset
Dim sqlstr As String

  Set dbs = CurrentDb()
   
  On Error Resume Next
 
  DoCmd.DeleteObject acTable, "TmpTabel"
 
  sqlstr = "Select * From Vare "
  Set rst = dbs.OpenRecordset(sqlstr)
 
  Set tdfNew = dbs.CreateTableDef("TmpTabel")

  With tdfNew
      .Fields.Append .CreateField("Ordrenummer", dbDouble, 10)
  End With
 
  While Not rst.EOF
 
      With tdfNew
     
        .Fields.Append .CreateField(rst!varenummer, dbDouble)
   
      End With
     
  rst.MoveNext
     
  Wend
     
  dbs.TableDefs.Append tdfNew
     
      With tdfNew
          Set idxNew = .CreateIndex("OrdreIdx")
          idxNew.Fields.Append idxNew.CreateField("Ordrenummer")
          idxNew.Primary = True
          .Indexes.Append idxNew

      End With
     
rst.Close
Set dbs = Nothing
Set rst = Nothing

End Sub

MVH
Jubas
Avatar billede henrik13 Nybegynder
17. oktober 2003 - 00:27 #18
Hej Jubas.
Det var også en sej kode.
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