Oprettet man. d. 05. juli 2010 kl. 21:44:34

rookie44
rookie44 (8.255 point. Point ude: 60)

Tilføje et felt i en database

Jeg prøver at oprette et felt i en tabel i en sammenkædet database.
Nedennævnte kode er tidligere brugt uden problemer, men nu virker den ikke. Koden kører og der kommer ingen fejlmeddelelse, men feltet bliver bare ikke oprettet.
Er dre nogen der kan et tip til hvad der er galt.



Sub Opdat304305()
'Tilføjer feltet FStatus til tabellen T_Faktura
On Error GoTo ERR_Opdat304305
Dim db As DAO.Database
Dim fld As DAO.Field
Dim tdf As DAO.TableDef

'Set db = CurrentDb()

Dim DB_FileName, DB_Pathname, DB_TableName As String
DB_FileName = "MKPdata.mdb"            ' Tabeldatabasen
DB_Pathname = Forms!Aabningbillede.Stinavn  'henter den database man ønkser at benytte 'rstNavn.DataSti      'Trim(Command)            ' Sti fra genvejsmenu /cmd C:\DSdata
If Right(DB_Pathname, 1) <> "\" Then
      DB_Pathname = DB_Pathname & "\"
End If
FileName = DB_Pathname & DB_FileName  '=fulde sti + filnavn
 
Set db = OpenDatabase(FileName)

Set tdf = db.TableDefs!T_Faktura

'WdsData.Execute "Alter T_Faktura Alter FSTatus Long"

Set fld = tdf.CreateField("FStatus", dbLong) 'Feltnavn = FStatus, og egenskab = Langt heltal
'MyTabel.Fields.Append fld
'WdsData.TableDefs.Refresh
'If MyTabel.Updatable = True Then
'  With MyTabel
'      .Fields.Append .CreateField("Restmandetimer", dbSingle)
'  End With
'End If

Set db = Nothing

Exit_Opdat304305:
  Exit Sub
 
ERR_Opdat304305:
  MsgBox ("Fejl i opdatering " & Err.Description)
  GoTo Exit_Opdat304305



End Sub

Skrevet man. d. 05. juli 2010 kl. 21:51:01| #1

terry
terry (244.617 point)
you are aware that some of the code is comment out?

'MyTabel.Fields.Append fld
'WdsData.TableDefs.Refresh
'If MyTabel.Updatable = True Then
'  With MyTabel
'      .Fields.Append .CreateField("Restmandetimer", dbSingle)
'  End With
'End If

Skrevet man. d. 05. juli 2010 kl. 23:04:31| #2

Som Terry anfører, så slører du fokus ved at vise udkommenterede  or dermed irelevante linier.
Oplysningen om at tabelen er sammenkædet,  er det overhovedet relevant? er det ikke backend path der hentes i 'Forms!Aabningbillede.Stinavn' - frontenden (hvorfra koden køres) hedder bare currentdb.Name

Prøv at sætte et breakpoint efter 'filename=' og se om  det passer.

Skrevet tir. d. 06. juli 2010 kl. 16:43:36| #3

rookie44
rookie44 (8.255 point)
Terry
Kommentar linierne er andre metoder der er mislykkedes

p.t prøver jeg denne kode set i et svar fra 2002

Dim DB_FileName, DB_Pathname, DB_TableName As String
DB_FileName = "MKPdata.mdb"            ' Tabeldatabasen
DB_Pathname = Forms!Aabningbillede.Stinavn  'henter den database man ønkser at benytte 'rstNavn.DataSti      'Trim(Command)            ' Sti fra genvejsmenu /cmd C:\DSdata
If Right(DB_Pathname, 1) <> "\" Then
      DB_Pathname = DB_Pathname & "\"
End If
MinFil = DB_Pathname & DB_FileName  '=fulde sti + filnavn
 
DoCmd.RunSQL "ALTER TABLE MinFil.T_Faktura ADD COLUMN FStatus SHORT"
 

Men jeg får at vie at i DoCmd sætningen er der en Syntaksfejl

Skrevet tir. d. 06. juli 2010 kl. 19:30:18| #4

terry
terry (244.617 point)
we obviously cant see what MinFil contains so I suggest you make sure it contains what you expect.

One way to do this is using a message box


Place theis before your DoCmd...


Msgbox Minfil

Skrevet tir. d. 06. juli 2010 kl. 19:41:58| #5

rookie44
rookie44 (8.255 point)
Terry

Jeg har testen den og MinFil viser den rigtige fil placering i dette tilfælde

C:\MakaporXPUdviklling\demo\mkpdata.mdb

Det er sådan at brugeren kan have flere Backends der hver i sær skal have tilføjet feltet.

Skrevet tir. d. 06. juli 2010 kl. 19:51:35| #6

rookie44
rookie44 (8.255 point)
Terry

Når jeg kører den viste kode med en MsgBox får jeg det rigtige indhold i MinFil, men jeg får en fejlmeddellelse der siger:

Fejl i opdatreringen Filen "C:\Users\leifdyhr44\Documents\MinFil.mdb" kan ikke findes.

Skrevet tir. d. 06. juli 2010 kl. 20:14:45| #7

terry
terry (244.617 point)
are you 100% sure that the db does exist there?

Try moving the dB to the same folder as the frontend then you can use


MinFil  = Left(CurrentDB.Name, Len(CurrentDB.Name) - Len(Dir(CurrentDB.Name))) & "MinFil.mdb"

Skrevet tir. d. 06. juli 2010 kl. 20:22:33| #8

rookie44
rookie44 (8.255 point)
Ja, jeg er 100% sikker på at filen eksisterer i den angivne placering. Jeg kan arbejde med alle data uden problemer.

Koden skulle gerne virke uanset placeringen af Backenden.
Men jeg prøver at flytte den til Frontend placeringen.
Vender tilbage senere.

Skrevet tor. d. 08. juli 2010 kl. 09:40:02| #9

rookie44
rookie44 (8.255 point)
Terry
Jeg har nu prøvet at køre programmet med frontend og backend placeret i samme sti og brugt din kode.
Jeg får samme fejl som beskrevet ovennfor.

Skrevet tor. d. 08. juli 2010 kl. 10:26:42| #10

terry
terry (244.617 point)
Ah! Just woke up after a long sleep :o)


DoCmd.RunSQL "ALTER TABLE " & MinFil & ".T_Faktura ADD COLUMN FStatus SHORT"

Skrevet fre. d. 09. juli 2010 kl. 08:28:30| #11

rookie44
rookie44 (8.255 point)
Terry

BINGO. Nu fungerer det. Smider du et svar

Skrevet fre. d. 09. juli 2010 kl. 09:36:38| #12

terry
terry (244.617 point)
great :o)

I dont understand why it took me so long to see the problem, age maybe :o)

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Dato og Klokkeslet "Live"

Oprettet den 11. februar 2012 kl. 19.39
jmarques giver 60 point for svar | Giv et svar »

Link til et dokument

Oprettet den 10. februar 2012 kl. 14.15
omn giver 60 point for svar | Giv et svar »

Formular med flere paramtre

Oprettet den 9. februar 2012 kl. 16.48
stuegnu giver 100 point for svar | Giv et svar »

Seneste guides

Installer win 7
Den gode bruger


   




Tips & Tricks fra PC World

Teaser billede

Her er fem sjove danske websider du skal kende

Trænger dine lattermuskler til en omgang fitness på dansk? Vi viser vej til fem websider fyldt med humor og vanvittig satire.


Anmeldelser fra PC World

Teaser billede

Test: Denne super-tablet er iPads hårdeste konkurrent

Eee Pad Transformer Prime er frygtindgydende med sin quadcore processor og evne til at trylle sig om til bærbar. Apple bør kigge i bagspejlet, for Asus' tablet-pc kommer buldrende - og gør det...


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Nu kan du snart hente Windows 8

Den nye offentlige betaversion af Windows 8 er klar i denne måned.


Nyheder fra Computerworld

Teaser billede

Måske snart slut med Androids helt store problem

Android-platformen har længe været plaget af et særligt problem. Men måske er problemet nu ved at være elimineret.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger