VBA-Access und Planmaker und LEFT-Funktion

Allgemeine Fragen zu SoftMaker Office 2021 für Windows. Für alles andere bitte die programmspezifischen Foren benutzen.
Antworten
JoRa
Beiträge: 24
Registriert: 29.12.2009 12:36:33

VBA-Access und Planmaker und LEFT-Funktion

Beitrag von JoRa »

Es gibt ein merkwürdiges Problem bei der Benutzung der LEFT-Funktion in VBA unter Access. Um Planmaker-Aufrufe in dem VBA zu nutzen, muß ich die "Planmaker Automation Type Library" unter den Verweisen (als letzte aktive) einbinden. Dadurch wird ein Fehler beim Compile erzeugt, wenn die Funktion LEFT benutzt wird. Entfernt man die Library, läuft der Compile durch. Dies passiert unter Access2010 und Access2021. Das Problem ist aber kein Show-Stopper, man kann die LEFT-Funktion durch die MID-Funktion ersetzen.
(Dieser Beitrag soll anderen Benutzern das lange Suchen nach einer Lösung ersparen)
Dateianhänge
verweise.JPG
verweise.JPG (20.22 KiB) 1841 mal betrachtet
Compile-Fehler.jpg
Compile-Fehler.jpg (16.87 KiB) 1841 mal betrachtet
SuperTech
SoftMaker Team
SoftMaker Team
Beiträge: 3332
Registriert: 11.03.2020 17:30:08

Re: VBA-Access und Planmaker und LEFT-Funktion

Beitrag von SuperTech »

Vielen Dank, dass Sie dieses Problem mit einem Screenshot des Fehlers gemeldet haben. Bitte teilen Sie uns die zugehörigen Dateien mit, in denen das Problem auftritt, damit wir weitere Untersuchungen zur Problemlösung durchführen können.

Wenn Sie uns die Datei privat zusenden möchten, senden Sie uns bitte eine E-Mail an forum[at]softmaker.de

Bitte geben Sie auch die Forum-URL dieses Themas an, damit wir Ihre E-Mail zurückverfolgen können.
viewtopic.php?f=356&t=29279
JoRa
Beiträge: 24
Registriert: 29.12.2009 12:36:33

Re: VBA-Access und Planmaker und LEFT-Funktion

Beitrag von JoRa »

Sie rufen Access auf, öffnen eine leere Datenbank. Über "Erstellen/Visual Basic" gehen Sie in die VBA-Umgebung. Dort fügen Sie einen neuen Modul ein:

Public Sub Testx()
Dim text1 As String
Dim text2 As String
text1 = "abc"
text2 = Left(text1, 1)
End Sub

Diesen kann man über Debug/Einzelschritt ausführen.
Der Fehler tritt nur dann auf, wenn man unter "Extras/Verweise" die "Planmaker Automation Type Library" wie in meiner Hardcopy oben gezeigt hinzufügt.
Ich hoffe, das hilft Ihnen.
SuperTech
SoftMaker Team
SoftMaker Team
Beiträge: 3332
Registriert: 11.03.2020 17:30:08

Re: VBA-Access und Planmaker und LEFT-Funktion

Beitrag von SuperTech »

Vielen Dank für die Mitteilung weiterer Details. Ich habe die Details an unser Entwicklerteam weitergeleitet, damit dieses Problem untersucht werden kann.
SuperTech
SoftMaker Team
SoftMaker Team
Beiträge: 3332
Registriert: 11.03.2020 17:30:08

Re: VBA-Access und Planmaker und LEFT-Funktion

Beitrag von SuperTech »

Das Häkchen in VBA/Tools/References legt fest, welche VBA-Funktionen standardmäßig, d.h. ohne Präfix, zur Verfügung stehen.

Setzen Sie bitte kein Häkchen bei "PlanMaker Automation Type Library" und verwenden Sie bei Bedarf die LEFT-Funktion von PlanMaker mit Präfix, wie im folgenden Beispiel gezeigt:

Code: Alles auswählen

Public Sub Testx()
Dim text1 As String
Dim text2 As String
Set pm = CreateObject("PlanMaker.Application")
text1 = "SofTMaker Office"
text2 = Right(text1, 2)
text2 = Left(text1, 2) '←— calls the VBA function
MsgBox text2
MsgBox pm.Name
MsgBox pm.Left '←— calls the PM function
End Sub
JoRa
Beiträge: 24
Registriert: 29.12.2009 12:36:33

Re: VBA-Access und Planmaker und LEFT-Funktion

Beitrag von JoRa »

Ich bin wohl von falschen Voraussetzungen ausgegangen. Ich muß nicht den Verweis benutzen, um Planmaker aufrufen zu können. Ich habe Compile-Fehler erhalten, aber nicht gesehen, daß der Compiler nur fehlende Variablendefinitionen bemängelt hat. Gerade habe ich den Verweis entfernt und die Source geändert:
Set pm = CreateObject("PlanMaker.Application")
....
pm.Workbooks.Open fn1, False, pmFormatPlainTextUnicode, , , ";", pmImportTextMarkerNone
pm.ActiveWorkbook.SaveAs fn2, pmFormatMSXML
pm.ActiveWorkbook.Close smoDoNotSaveChanges
....
pm.Application.Quit
Set pm = Nothing

die obige Source ergibt die Fehler, aber wenn man die Variablen qualifiziert angibt, funktioniert es:
...
pm.Workbooks.Open fn1, False, pm.pmFormatPlainTextUnicode, , , ";", pm.pmImportTextMarkerNone
pm.ActiveWorkbook.SaveAs fn2, pm.pmFormatMSXML
pm.ActiveWorkbook.Close pm.smoDoNotSaveChanges

Vielen Dank
Antworten

Zurück zu „SoftMaker Office 2021 für Windows (allgemein)“