Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Felddatentyp im geschützen BE ändern per VBA

Begonnen von schnalli, Dezember 16, 2014, 13:11:28

⏪ vorheriges - nächstes ⏩

schnalli

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

MzKlMu

#1
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.
Gruß Klaus

schnalli

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

DF6GL

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..
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

schnalli

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

MaggieMay

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.
Freundliche Grüße
MaggieMay