Hallo...
ich kann leider nicht das richtige finden darum würde ich bitten das mir jemand die Lösung sagen könnte.
Habe ein word template erstellt und die werte des access formulares werden dort übergeben mit textmarken.
Funktioniert auch so weit ausser das ich nicht hinbekomme das die auswahl der combobox mir den text anzeigt und nicht die Id.
HOffe es ist verständlich und bitte um Hilfe
Danke
A
Hallo,
das was entscheidend ist, zeigst Du nicht.
Wie erfolgt der Zugriff auf den Inhalt des Kombis?
Wie lautet dessen Datenherkunft?
Hallo..danke für Deine Nachricht.
Also ich habe das Kombi mit dem Assistenten erstellt es ist eine Nachschlag Tabelle.
Also nur zwei Felder Id ...Autowert und Anrede als text.
Hoffe das ist was Du meinst?
Danke
Hallo,
stell die Kombieigenschaften so ein:
Spaltenanzahl: 2
Spaltenbreiten: 0cm;4cm
Hallo,
mit obigen Einstellungen wird doch auch die gebundene Splate übergeben.
Daher wäre es noch wichtig zu wissen, wie der Wert des Kombis übergeben wird. Daher ja die Frage:
ZitatWie erfolgt der Zugriff auf den Inhalt des Kombis?
Die aber nicht beantwortet wurde.
Hallo Franz,
hab ich auch schon so aber es geht trotzdem nicht :(
Hallo,
poste mal den SQL-String (mit copy&paste) , der in der Datensatzherkunft des Kombis steht...
SELECT [Anrede].[An_ID], [Anrede].[AnAnrede] FROM [Anrede];
Hallo,
und was ist mit meiner 2. Frage?
Hallo..
Ich würde Dir ja sehr gerne Antworten aber ich bin mir leider nicht sicher wo ich diese Info herbekomme :-\ tut mir leid..
da kenn ich mich nocht nicht so gut aus..
Hallo,
Varinte 1:
erstelle ein normales Textfeld (später unsichtbar machen). Dort kommst als Steuerelementinhalt rein:
=NameDesKombis.Column(1)Es wird Spalte 2 (die Zählung beginnt mit 0) des Kombis angezeigt.
Dieses Feld verwendest als Textmarke.
Varainte 2:
Erstelle eine Abfrage für das Formular und nimm die Anrede Tabelle mit auf, mit der Beziehung. Verwende diese Abfrage für das Formular, dann hast Du das Feld mit dem Anredetext direkt zur Verfügung.
Variante 2 würde ich bevorzugen.
Hallo,
Zitatdas die auswahl der combobox mir den text anzeigt und nicht die Id.
und
Zitat
SELECT [Anrede].[An_ID], [Anrede].[AnAnrede] FROM [Anrede];
dann stell die Kombieigenschaften so ein, wie ich es gepostet habe.
Hallo Franz,
ja hab ich ja schon so gehabt Eigenschaften so wie Du es geschrieben hast.
Trotzdem immer noch die ID.
Ich habe auch das Textfeld erstellt und ja es zeigt mir den Wert an. Was muss ich dann jetzt weiter machen mit dem textfeld??
Hallo Albert,
mir (und vielleicht auch Klaus) wird es immer unklarer, was Du überhaupt machst...
Hallo,
das Textfeld verwendest Du statt dem Kombi als Textmarke.
Auch mit meiner Variante 2 wird das Textfeld als Textmarke verwendet.
Na ja da seit Ihr nicht alleine :)
Hier ist der Code
Private Sub cmdODoc_Click()
Dim appword As Word.Application
Dim doc As Word.Document
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim strTemplatePath As String
Dim strTemplateName As String
Dim strTemplateNameAndPath As String
Dim strRecipientName As String
Dim strRecipientAddress As String
Dim strRecipientTown As String
Dim strRecipientZip As String
Dim strSalution As String
Dim strBillNumber As String
Dim strTitle As String
Dim strPrompt As String
Dim lngBillNumber As Long
Dim lngSalution As Long
Dim lngContactID As Long
Dim fso As New Scripting.FileSystemObject
Dim fil As Scripting.File
lngContactID = Nz(Me![KD_ID])
If lngContactID = 0 Then
strPrompt = "Kein Kontakt selektiert"
strTitle = "Problem"
MsgBox strPrompt, vbOKOnly + vbExclamation, strTitle
Else
strRecipientName = Nz(Me![KD_Firma])
strRecipientAddress = Nz(Me![KD_StrasseNr])
strRecipientTown = Nz(Me![KD_Ort])
strRecipientZip = Nz(Me![KD_PLZ])
lngBillNumber = Nz(Me![KD_PLZ])
lngSalution = Nz(Me![KD_An_Id])
End If
Set appword = CreateObject("Word.Application")
' Get the default user Template path from the Word Options dialog (it is still available in code, _
though it has disappearend from the Word 2007 interface)
strTemplatePath = CurrentProject.Path
strTemplateName = "RVorlage.dotx"
strTemplateNameAndPath = strTemplatePath & "\" & strTemplateName
If Dir(strTemplateNameAndPath) = "" Then
MsgBox "Can't locate template file, " & strTemplateName & ", in folder " & strTemplatePath, vbCritical, "Template Not Found"
appword.Quit
GoTo ErrorHandlerExit
End If
Set doc = appword.Documents.Add(strTemplateNameAndPath)
'Write information to Word bookmarks in the document:
With doc
.Bookmarks("Adresse").Range.Text = strRecipientAddress
.Bookmarks("Anrede").Range.Text = lngSalution
.Bookmarks("KDNummer").Range.Text = lngContactID
.Bookmarks("Name").Range.Text = strRecipientName
.Bookmarks("Ort").Range.Text = strRecipientZip
.Bookmarks("RNummer").Range.Text = strBillNumber
.Bookmarks("ZZ").Range.Text = Format(Date, "Long date")
.Goto what:=wdGoToBookmark, Name:="LetterText"
strPrompt = "Ready to enter letter text"
strTitle = "Access data imported"
MsgBox strPrompt, vbOKOnly, strTitle
appword.Visible = True
appword.Activate
End With
ErrorHandlerExit:
Set appword = Nothing
Exit Sub
End Sub
Klaus es ist mir ja eh klar das es so funktionieren muss wie Du sagst nur funktioniert es nicht.
Hab im Code [KD_An_Id] mit meinem textfeld ausgewechselt...txtAnrede
aber auch leder ohne erfolg
wo oder besser wie muss den der Code geändert werden damit ich nun das textfeld ansteuere?
Danke sehr!!!
Hallo,
wenn Du einen Text willst, darfst Du keine Zahl deklarieren. Ändere mal wie folgt:
Dim strSalution As String
.
.
strSalution = Nz(Me!NameKombi.Column(1),"")
Hallo Klaus,
danke... irgendwas stimmt leider noch nicht aber ich hab jetzt leider keine Zeit mehr muss weg..
Bedanke mich aber sehr sehr herzlich für Deine Hilfe.
Muss es mir später noch besser anschauen.
Danke
A