Hallo Leute!
Ich wende mich mit einem Problem an euch und bitte um Hilfe.
Ich habe eine geteilte DB im ACC2003 die von verschiedenen Usern auf ihren PC in Verwendung ist. Update des alten FE erfolgt durch ersetzen mit dem geänderte FE. Wie aber ändere ich im geschützten BE die Größe eines Felddatentyp in einer bestehenden Tabelle mittels VBA?
Mein Ansatz wäre gewesen:
Function Feld_aendern()
Dim db As DAO.Database
Set db = DBEngine.Workspaces(0).OpenDatabase("D:\Allg\Schlüsselordnung V 1.0.3\Programm\Schlüsselordnung_be.mdb", False, _
False, ";pwd=test" & pwdaida)
CurrentDb.Execute "ALTER TABLE Version ALTER COLUMN version TEXT(109)"
MsgBox "Datenbank Update erfolgreich durchgeführt!"
End Function
Das Problem ist mit > CurrentDb.Execute < greift man nur auf die Tabellen im FE zu.
Wie geht das mit dem geschützten BE?
Und geht das auch mit einen relativen Pfad anstelle des vollständigen? Es kann auch sein das der eine oder andere die DB nicht dort abgelegt hat!
<<<Set db = DBEngine.Workspaces(0).OpenDatabase("D:\Allg\Schlüsselordnung V 1.0.3\Programm\Schlüsselordnung_be.mdb", False, _
False, ";pwd=test" & pwdaida)>>>>
Danke im voraus für eure Hilfe
Ernst
Hallo,
warum per VBA?
Und warum stellst Du nicht einfach alle Textfelder auf 255 Zeichen ein ?
Und warum benutzt Du 2 Foren ?
http://www.ms-office-forum.net/forum/showthread.php?t=317306
Gleichzeitiges Fragen in verschieden Foren verstößt gegen die Forumsregeln, in diesem Forum und im anderen.
Hallo MzKlMu
Bin unterwegs gewesen und hatte keine Zeit in die Foren zu schauen.
Zwei Foren deswegen, weil nicht alle die mir helfen könnten bei Access-o-Mania sind.
Zur zweiten Frage: Weil das BE schon an die User verteilt ist mit weniger Zeichen. Ich bräuchte jetzt aber mehr Zeichen!
Gruß
Ernst
Hallo,
Deiner Argumentation bezgl. zweier Foren kann ich nicht folgen...
Wie auch immer, wenn Du schon das BE öffnest, solltest Du Dich auch darauf beziehen.
Weiterhin: stell doch die Feldlänge gleich auch 255 ein. Warum soll die Länge gerade 109 betragen?
Function Feld_aendern()
Dim db As DAO.Database
Set db = DBEngine.Workspaces(0).OpenDatabase("D:\Allg\Schlüsselordnung V 1.0.3\Programm\Schlüsselordnung_be.mdb", False, _
False, ";pwd=test" & pwdaida) 'Was ist das? Wo wird die Variable deklariert und gesetzt?
db.Execute "ALTER TABLE Version ALTER COLUMN version TEXT(255)"
MsgBox "Datenbank Update erfolgreich durchgeführt!"
End Function
Zudem solltest Du auch im anderen Forum ein Feedback geben..
Hallo an Alle
Nochmals an die, die nicht alles verstehen und warum mehrere Foren nicht folgen können!
Und ich beantworte die Frage die in den jeweiligen Foren gestellt werden.
Das Problem liegt nicht an der Anzahl an Zeichen warum 109 und nicht 255, DAS SIND NUR HAUSNUMMERN.
Das Problem ist: Das BE ist schon an alle User verteilt und in verschiedenen übergeordneten Ordnern abgespeichert, den ich aber nicht kenne. Aber der Ordnername (Programm) wo das FE und BE liegen ist bei allen gleich. Kann man das BE mit einem relativen Pfad ändern oder nicht!
<<<Set db = DBEngine.Workspaces(0).OpenDatabase("D:\Allg\Schlüsselordnung V 1.0.3\Programm\Schlüsselordnung_be.mdb", False, _
False, ";pwd=test")>>>>
Danke
Ernst
Hallo Ernst,
du kannst den Zugriffspfad zum Backend auf verschiedene Weise ermitteln, bspw. durch Auslesen der Connect-Spalte der Systemtabelle "MSysObjekts" oder der Connect-Eigenschaft der Objekte der TableDefs-Auflistung.