PDA

Vollständige Version anzeigen : Autotexte aus einer Access DB auslesen


ewuewu
18.11.2008, 10:46
Hallo,

ein Bekannter benutzt in seinem Unternehmen Word zur Erstellung von Angeboten. Zur Zeit sind alle Möglichkeiten von Angebotspositionen als Autotexte angelegt. D.h der User gibt eine Bestellnummer ein. Sobald diese erkannt wir erscheint die Aufforderung die Entertaste zu drücken und die hinterlegte Angebotsposition mit Texten und Preisen wird eingefügt.

Nun sollen aber die einzelnen Angebotspostionen in einer Access-Datenbank abgelegt werden und nur noch die Bestellnummern (Als zukünftiger Index) im Template gespeichert sein.

Nun die Frage: gibt es eine Möglichtkeit, das Ereignis beim Drücken der Entertaste auf eine Funktion 'umzubiegen', so dass daraufhin ein Makro die DB abfragen kann und die Angebotsdaten in das Worddokument einträgt?

Ziel der Übung ist es eine Mehrsprachigkeit zu erzeugen. Je nachdem welche Sprache beim Öffnen der Dokumentvorlage ausgewählt wurde (diese Auswahlmöglicht besteht bereits und funktioniert), sollen die Angebotstexte entweder in deutsch oder englisch eingefügt werden. Die Artikelnummern sind aber sowohl für deutsche als auch englische Artikel identisch.

Es wäre schön hierzu den 'Erkennungsmechanismus' für die Autotexte weiter nutzen zu können, da sich die Mitarbeiter des Bekannten an diesen gewöhnt haben und selbst kleinste Veränderungen immer zu Konfusionen führen.

Für Ideen und Hinweise wäre ich dankbar.

Gruss
ewuewu

ctulhu
19.11.2008, 09:25
Hallo,

mit Deinem Vorhaben habe ich noch keine Erfahrung. meine VBA-Kenntnisse sind außerdem nicht so doll.

Mit folgendem Code bestücke ich Kombo-Boxen mit Werten aus einer Accesstabelle. Vieleicht kannst Du es auf Autotexte umschreiben, oder jemand aus dem Forum kann Dir dabei weiter helfen.

Private Sub Document_Open()
Const Ende = 18
'
' Kombifeldinhalt Makro
' Makro aufgezeichnet am 20.10.2008 von H1511
'

Dim sh As InlineShape
Dim Arrayfaktor() As String
ReDim Arrayfaktor(1 To Ende)

Dim Db As DAO.Database
Dim rs As DAO.Recordset

Dim i As Long

Set Db = DBEngine.Opendatabase("C:\Vorlagen\Datenbank\Vorlagen.mdb")
Set rs = Db.OpenRecordset("SELECT * from tblELCode ORDER BY Code")

i = 1

Do Until rs.EOF = True
Arrayfaktor(i) = rs!Code
i = i + 1
rs.MoveNext
Loop

rs.Close
Db.Close
Set rs = Nothing
Set Db = Nothing

For Each sh In ActiveDocument.InlineShapes
If Left(sh.OLEFormat.Object.Name, 8) = "ComboBox" Then
For i = 1 To Ende
sh.OLEFormat.Object.AddItem Arrayfaktor(i)
Next i
End If
Next sh

End Sub

Gruß
ctulhu