Hallo zusammen,
ich bin nun einigermaßen fit in Word und Excel VBA. Bei access "harzt" es noch ein wenig. Nun habe ich zu meinen Verständnisdefiziten in access VBA noch ein weiteres Problem.
Ich würde gerne aus Word eine Verbindung zu einer access Datenbank herstellen und in einem ersten Schritt Eintragungen machen.
Dies habe ich schon mit Excel gelöst. Problem hierbei ist, dass mehrere Personen zugreifen. Daher habe ich aktuell für jeden Anwender eine eigene Excel-Datei zur Protokollierung - funktioniert soweit gut. Anbei der Code:
Nun würde ich gerne das ganze erweitern, so dass im Protokoll noch bestehende Einträge gesucht werden können. Hierzu muss ich aber auf alle Protokolleinträge zugreifen. Somit habe ich wieder das Problem mit dem Zugriff.
Mir erscheint hier als logische Lösung dies alles in Access zu machen. Hier gibt es dann ja keine Probleme, wenn mehrere gleichzeitig "lesen" und "schreiben".
Leider habe ich aktuell keinen Schimmer wie ich auf die Access-Funktionen aus Word zugreifen kann. Sollte sich jemand die Mühe machen mich hier zu unterstützen im Voraus den besten Dank!
Viele Grüße
Andreas
ich bin nun einigermaßen fit in Word und Excel VBA. Bei access "harzt" es noch ein wenig. Nun habe ich zu meinen Verständnisdefiziten in access VBA noch ein weiteres Problem.
Ich würde gerne aus Word eine Verbindung zu einer access Datenbank herstellen und in einem ersten Schritt Eintragungen machen.
Dies habe ich schon mit Excel gelöst. Problem hierbei ist, dass mehrere Personen zugreifen. Daher habe ich aktuell für jeden Anwender eine eigene Excel-Datei zur Protokollierung - funktioniert soweit gut. Anbei der Code:
Code:
Sub Protokoll() 'Textmarkeninhalte in Excelblatt eintragen (ohne Excel-Makro) Dim objWbLiefer As Excel.Workbook, objwksLiefer As Excel.Worksheet Dim objZelle As Excel.Range Dim objDoc As Word.Document Dim strExceldatei As String Const strPfad As String = "R:\Qualitätssicherung\Stellungnahmen-Korrespondenz\Wlochowitz" strExceldatei = "Stellungnahmen " & ProtokollDatei & ".xls" Const strExcelBlatt As String = "Tabelle1" Set objDoc = ActiveDocument 'Exceldatei öffnen Set objWbLiefer = Excel.Workbooks.Open(FileName:=strPfad & _ Application.PathSeparator & strExceldatei) 'Prüfen, ob Datei schreibgeschützt geöffnet wurde If objWbLiefer.ReadOnly = True Then MsgBox "Die Datei " & strExceldatei & " ist von anderem Anwender geöffnet!" & vbLf _ & "Makro wird abgebrochen", vbOKOnly, "Textmarken nach " & strExceldatei objWbLiefer.Close Excel.Application.Quit GoTo Beenden End If ' Application.WindowState = wdWindowStateMinimize ' Excel.Application.Visible = True Set objwksLiefer = objWbLiefer.Worksheets(strExcelBlatt) 'auszufüllende Zelle im Blatt Liefer suchen (nächste frei Zelle in Spalte A) Set objZelle = objwksLiefer.Cells(LetzteZeile(objwksLiefer, 1), 1).Offset(1, 0) 'Zeile mit Textmarken-Inhalten auffüllen With objZelle .Value = Antwortrouting .Offset(0, 1).Value = "SN " & Kunr & " " & Name & " " & Name2 & " " & Date & ".doc" End With objWbLiefer.Save objWbLiefer.Close Beenden: Set objWbLiefer = Nothing: Set objwksLiefer = Nothing: Set objZelle = Nothing Set objDoc = Nothing End Sub Function LetzteZeile(objWks As Excel.Worksheet, lngSpalte As Long) As Long 'Letzte Zelle mit Daten in Spalte der Tabelle With objWks If IsEmpty(.Cells(.Rows.Count, lngSpalte)) Then LetzteZeile = .Cells(.Rows.Count, lngSpalte).End(xlUp).Row Else LetzteZeile = .Rows.Count End If End With End Function
Mir erscheint hier als logische Lösung dies alles in Access zu machen. Hier gibt es dann ja keine Probleme, wenn mehrere gleichzeitig "lesen" und "schreiben".
Leider habe ich aktuell keinen Schimmer wie ich auf die Access-Funktionen aus Word zugreifen kann. Sollte sich jemand die Mühe machen mich hier zu unterstützen im Voraus den besten Dank!
Viele Grüße
Andreas