Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Opendatabase

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Opendatabase (556 mal gelesen)
otm
Mitglied
Bauingenieur


Sehen Sie sich das Profil von otm an!   Senden Sie eine Private Message an otm  Schreiben Sie einen Gästebucheintrag für otm

Beiträge: 167
Registriert: 26.08.2009

MS Win 10
AutoCAD Civil 3D 2023
VBA Enabler 2023
MS Access Database Enginge X64
MSO 365 (64bit)

erstellt am: 05. Jul. 2021 11:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Forum,
folgendes Makro öffnet eine ACCESS DB, führt eine Abfrage mit Parameter aus und alles wieder schließt.

Code:

Function IsStrInQry(strQry As String, qpar As String, strA As String) As Boolean
    'Gibt es strA in der Abfrage strQry mit dem Abfrageparameter "QPar" in der DB?
    'Variablendefinition
    Dim db As DAO.Database
    Dim qry As QueryDef
    Dim rs As Recordset
    Dim DSAnz As Integer 'Anzahl der abgefragten Datensätze
   
    'Datenbank öffnen
    'Die DB wird nicht exklusiv und schreibgeschützt geöffnet.
    Set db = OpenDatabase(DBPathName, , True)

    'Abfrage definieren
    Set qry = db.QueryDefs(strQry)
   
    'Abfrageparameter setzen.
    qry.Parameters(qpar) = strA
   
    'Abfrage ausführen
    Set rs = qry.OpenRecordset
   
    If rs.EOF Then
        'keine Datensätze in der Abfrage enthalten.
        IsStrInQry = False
        GoTo Exit_IsStrInQry
    Else
        'Nur wenn es DS gibt ausführen
        rs.MoveLast
        rs.MoveFirst

        'Datensätze in der Abfrage zählen
        DSAnz = rs.RecordCount
       
        If DSAnz = 1 Then
            IsStrInQry = True
        Else
            IsStrInQry = False
        End If
    End If
   
Exit_IsStrInQry:
    rs.Close
    db.Close
    Set qry = Nothing
    Set rs = Nothing
    Set db = Nothing
End Function


Nun läuft das Makro nicht mehr und bleibt bei ... Opendatabase hängen.
Es kommt keine Fehlermeldung, nix.
Der Rechner bleibt hängen und ich muss ACAD über den Taskmanager beenden.

- Bei den vertrauenswürdigen Orten in ACCESS ist die DB angemeldet.
- die Variablen sind alle belegt
- Die Datenbank gibt es an diesem Ort.
- Die Verweise in VBA sind gesetzt.
Woran könnte das noch liegen?

Noch eine Frage: Was gibt es für eine alternative Zugriffsmöglichkeit auf eine AccessDB?

------------------
Grüße aus München
Christian

[Diese Nachricht wurde von otm am 05. Jul. 2021 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



Sehen Sie sich das Profil von KlaK an!   Senden Sie eine Private Message an KlaK  Schreiben Sie einen Gästebucheintrag für KlaK

Beiträge: 2624
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2022
Plateia, Canalis
Visual Basic

erstellt am: 05. Jul. 2021 12:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für otm 10 Unities + Antwort hilfreich

Hallo Christian,
Was wurde denn geändert? Und bis wann lief das Makro?
Gleiches Autocad? Gleiches Office? Oder Umstellung von 32 auf 64 Bit?

Grüße
Klaus 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

otm
Mitglied
Bauingenieur


Sehen Sie sich das Profil von otm an!   Senden Sie eine Private Message an otm  Schreiben Sie einen Gästebucheintrag für otm

Beiträge: 167
Registriert: 26.08.2009

MS Win 10
AutoCAD Civil 3D 2023
VBA Enabler 2023
MS Access Database Enginge X64
MSO 365 (64bit)

erstellt am: 05. Jul. 2021 13:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Was genau verändert wurde, kann ich nicht nachvollziehen.
An der Umgebung wurde jedenfalls nichts geändert.

Ich habe aus der dvb ein paar Makros entfernt, die nichts mit diesem Makro zu tun haben.

Alle Makros ohne den Befehl opendatabase laufen einwandfrei.

Was ich noch nicht verstanden habe ist, wo der Befehl opendatabase hakt, weil er ja richtig aufgerufen wird.

------------------
Grüße aus München
Christian

[Diese Nachricht wurde von otm am 05. Jul. 2021 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



Sehen Sie sich das Profil von KlaK an!   Senden Sie eine Private Message an KlaK  Schreiben Sie einen Gästebucheintrag für KlaK

Beiträge: 2624
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2022
Plateia, Canalis
Visual Basic

erstellt am: 05. Jul. 2021 18:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für otm 10 Unities + Antwort hilfreich

Ich vermute Du bist das Programm schon mit F8 durchgegangen und hast den Wert von DBPathName überprüft.

Habe bei mir festgestellt dass ich die DAO Objekt Library gar nicht aktivieren kann, da fehlt wohl eine Datei oder ist falsch registriert.
Aber meine Programme mit Datenbankzugriff laufen alle über ADO, weshalb ich Dir hier keine große Hilfe geben kann. Weiß nur dass ich früher auch öfters mit DAO Probleme hatte.

Grüße
Klaus   

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

otm
Mitglied
Bauingenieur


Sehen Sie sich das Profil von otm an!   Senden Sie eine Private Message an otm  Schreiben Sie einen Gästebucheintrag für otm

Beiträge: 167
Registriert: 26.08.2009

MS Win 10
AutoCAD Civil 3D 2023
VBA Enabler 2023
MS Access Database Enginge X64
MSO 365 (64bit)

erstellt am: 05. Jul. 2021 21:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Bin mit F8 alles durchgegangen und habe eben den Befehl opendatabase als den Übeltäter entlarvt.
Alles andere läuft einwandfrei, superschnell.

Ich denke auch, dass es daran liegt, dass er eine Datei nicht findet. Aber, wie finde ich das, was er nicht findet?

Bei anderer Gelegenheit kommt auch auf manchen Rechnern ein Laufzeitfehler und MS schreibt dazu sinngemäß nur:
"Kommt bei manchen Rechnern vor, bei anderen nicht. Neuinstallieren hilft meist."

Aber egal:
Wie würde der Zugriff den mit ADO aussehen?

------------------
Grüße aus München
Christian

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



Sehen Sie sich das Profil von KlaK an!   Senden Sie eine Private Message an KlaK  Schreiben Sie einen Gästebucheintrag für KlaK

Beiträge: 2624
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2022
Plateia, Canalis
Visual Basic

erstellt am: 06. Jul. 2021 13:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für otm 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von otm:

Aber egal:
Wie würde der Zugriff den mit ADO aussehen?

Hi,
Mir fehlt gerade die Zeit Dir Beispiele herauszusuchen, sind in doch großen Projekten eingebunden.
Mir hat damals dieses Tutorial sehr weitergeholfen. Ist zwar nicht mehr auf den neuesten Stand, was die Provider betrifft, aber schon mal ein Anfang.

Grüße
Klaus 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

otm
Mitglied
Bauingenieur


Sehen Sie sich das Profil von otm an!   Senden Sie eine Private Message an otm  Schreiben Sie einen Gästebucheintrag für otm

Beiträge: 167
Registriert: 26.08.2009

MS Win 10
AutoCAD Civil 3D 2023
VBA Enabler 2023
MS Access Database Enginge X64
MSO 365 (64bit)

erstellt am: 06. Jul. 2021 21:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Vielen Dank für den Einstieg.

Mittlerweile habe ich das Problem weiter eingegrenzt.
Ich habe auf einem anderen Rechner ein anderes dvb-Projekt dazugeladen und dieses einmal ausgeführt.
Seitdem bleibt das ursprüngliche Projekt auch auf dem anderen Rechner bei opendatabase hängen bzw. AutoCad hängt sich auf und man muss den Task beenden.
Im neuen Projekt sind aber nur ein Formular und ein paar erste Makros enthalten.
Gibt es irgendwelche Besonderheiten, wenn man gleichzeitig zwei dvb-Dateien lädt?

Mittlerweile habe ich in MS Word ein ganz kurzes Makro laufen lassen, dass auch über OpenDatabase auf eine TestDB zugreift.
Das läuft einwandfrei. Die DB wird geöffnet, die Tabelle wird geöffnet, die Anzhl der DS ausgelesen und alles wieder geschlossen.
Kopiere ich dieses Makro 1:1 in AutoCAD-VBA, bleibt es beim Datenbankzugriff hängen.

------------------
Grüße aus München
Christian

[Diese Nachricht wurde von otm am 07. Jul. 2021 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



Sehen Sie sich das Profil von KlaK an!   Senden Sie eine Private Message an KlaK  Schreiben Sie einen Gästebucheintrag für KlaK

Beiträge: 2624
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2022
Plateia, Canalis
Visual Basic

erstellt am: 07. Jul. 2021 10:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für otm 10 Unities + Antwort hilfreich

Hallo Christian,

Ich würde hier einen Supportfall aufmachen, vielleicht ist schon etwas bekannt.
Testweise könnte man natürlich den PC auf einen Wiederherstellungspunkt zurücksetzen bei dem das noch funktioniert hat. Evtl. gab es ja Änderungen bei dem ein oder anderen Update.
Oder Du steuerst diese Geschichten über das Word- (oder Excel-)makro und bindest Autocad als Objekt dazu.

Grüße
Klaus  

[Diese Nachricht wurde von KlaK am 07. Jul. 2021 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

otm
Mitglied
Bauingenieur


Sehen Sie sich das Profil von otm an!   Senden Sie eine Private Message an otm  Schreiben Sie einen Gästebucheintrag für otm

Beiträge: 167
Registriert: 26.08.2009

MS Win 10
AutoCAD Civil 3D 2023
VBA Enabler 2023
MS Access Database Enginge X64
MSO 365 (64bit)

erstellt am: 07. Jul. 2021 20:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Klaus,

ich habe den Support kontaktiert und super Hilfe bekommen.
Es lag an der accessdatabaseengine.
Nach der Reparatur lief alles wieder wie vorher.
Wie das passieren konnte, haben wir nicht herausgefunden.
Dir auf jeden Fall vielen Dank für's Mitdenken.

------------------
Grüße aus München
Christian

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz