Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  ACAD-Objekte in Access-Bericht ausgeben

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
  
PNY wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
Autor Thema:  ACAD-Objekte in Access-Bericht ausgeben (2037 mal gelesen)
Dexta
Mitglied



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

Beiträge: 38
Registriert: 23.02.2005

erstellt am: 07. Mrz. 2005 11:24    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

Hi Leute,
hab mitlerweile rausbekommen, wie man via Befehlsschaltfläche in AutoCAD Access öffnet.

Information: Ich habe eine Sql-Datenbank auf dem Server, der Datensätze für AutoCAD-Objekte bereitstellt. Man muss nur die Datensätze mit den Objekten verknüpfen.

Frage:
Wie kann ich in Excel oder Access nur die Datensätze anzeigen, die eine Verknüpfung mit einem Objekt besitzen?? (Abfrage??)
Und wenn ein Datensatz mit mehreren Objekten verknüpft ist, soll dieser dementsprechend oft ausgegeben werden!! :-)

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

Brischke
Ehrenmitglied V.I.P. h.c.
CAD on demand GmbH



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

Beiträge: 4187
Registriert: 17.05.2001

ACAD20XX, defun-tools

erstellt am: 07. Mrz. 2005 12:57    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 Dexta 10 Unities + Antwort hilfreich

Hallo Dexta,

Wie hängen die Daten im AutoCAD, wie in der Datenbank?

Um deine Frage nach der Gestaltung der Abfrage beantworten zu können, bräuchte man schon genaue Kenntnis über die Strukturen in AutoCAD und der Datenbank.


Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH                              Autodesk User Group Central Europe
Individuelle Lösungen von Heute auf Morgen.              AUGCE Manager Deutschland

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

Dexta
Mitglied



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

Beiträge: 38
Registriert: 23.02.2005

erstellt am: 07. Mrz. 2005 13:14    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

Hi Brischke,
Ich habe eine SQL-Server-Datenbank, die Daten bereitstellt für ein Fließschema in AutoCAD. Ich greife auf die DB zu mit dem AutoCAD-DB-Verbindungsmanager. Man kann sich die Daten anzeigen lassen. Die Datensätze sind Sammlungen von allen Fließschemen Objekten, die existieren. Ich habe also ein Fließschema, dass sich aus Objekten (ist ja eigentlich egal welche) zusammensetzt. Die Objekte besitzen Attribute. Um diese nicht jedesmal neu eingeben zu müssen, verknüpft man einfach einen Datensatz mit dem Objekt. Um festzuhalten, welche Attrbute dieses Objekt hat. Die verknüpfung besteht nicht via Code, sondern man muss mit einem Rechtsklick auf den Datensatz gehen und geht dann in Datenanzeige, Verknüpfung erstellen. Und wählt dann durch Mausklick die Objekte in der Zeichnung.

Jetzt nochmal zu meiner Frage:
Da natürlich nicht alle Datensätze verknüpft sind, da ja nicht alle möglichen Objekte in einer zeichnung vorkommen. Ich möchte aber nur diejenigen Objekte ausgegeben bekommen, die eine Verknüpfung haben.
Mein Problem ist dabei, dass ich kein Attribut habe, über dass ich das Kriterium zur Selektion formulieren könnte. Ich weiss nicht, wie ich nur diese Datensätze angezeigt kriege. Es müßte da vielleicht irgendeinen VBA-Code geben, der nur die verknüpften Datensätze anzeigt. Nur weiss ich nicht wie dieser lautet!!

Ich hoffe das Problem ist jetzt verständlicher!!
P.s.: Die Attribute der Objekte sind ja eigentlich egal, da ja nur zur Debatte steht, Datensatz besitzt Verknüpfung, oder nicht!

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

Dexta
Mitglied



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

Beiträge: 38
Registriert: 23.02.2005

erstellt am: 07. Mrz. 2005 13:42    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

Hi Brischke,
Mir ist nochmal was eingefallen. Man kann dies in AutoCAD auch ohne VBA, durch öffnen einer Datenbanktabelle, dann Datenanzeige-Verknüpfte Datensätze anzeigen. Dann die gesamte Zeichnung markiert und dann die Eingabetaste drückt. Und dann in Datenanzeige auf Seitenansicht geht.

Genau das sollte der VBA-Code machen. Denn dies sollte alles durch einen Knopfdruck erfolgen. Und der Bericht sollte nicht in AutoCAD erstellt werden, sondern auf einem Excel-Blatt oder einem Access-Bericht. Ich glaube, jetzt weißt du ziemlich genau, was ich meine!!
:-)

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

Brischke
Ehrenmitglied V.I.P. h.c.
CAD on demand GmbH



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

Beiträge: 4187
Registriert: 17.05.2001

ACAD20XX, defun-tools

erstellt am: 07. Mrz. 2005 16:50    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 Dexta 10 Unities + Antwort hilfreich

Hallo Dexta,

Ist die Datenbank sauber geführt, dann sollte eine Abfrage über die Daten der DB zum Erfolg führen.

In der mit AutoCAD mitgelieferten Bsp-Datenbank db_sample.mdb kannst du in der Tabelle Room sehen, dass es ein Feld namens Entity_Handle gibt. In diesem ist die ObjectID eines AutoCAD-Objekts gespeichert.
Solch ein Feld muss auch in deiner Datenbank vorhanden sein (was nicht heißt, dass es auch so heißt). Eine Abfrage über diese Tabelle, in der dieses AutoCAD-ObjectID-Feld leer ist, sollte dir dein Ergebnis bringen.

Grüße Holger

------------------
Holger Brischke
CAD on demand GmbH                              Autodesk User Group Central Europe
Individuelle Lösungen von Heute auf Morgen.              AUGCE Manager Deutschland

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

Dexta
Mitglied



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

Beiträge: 38
Registriert: 23.02.2005

erstellt am: 07. Mrz. 2005 17:08    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

Hi Brischke,
Du hast recht, so müßte es eigentlich funktionieren.
Nur, habe ich doch in der Datenbankanzeige nur die Felder, die ich in der SQL-Datenbank auf dem server erstellt habe. Also ist ein solches Feld bei mir nicht vorhanden, wie kann ich solch ein Feld generieren. Ich bin ziemlich neu in AutoCAD, und weiss sowas leider nicht.
Was muss ich dann mit dem Feld machen, damit darin die bezüge, bzw. verknüpfungen zu objekten auftauchen?

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

Dexta
Mitglied



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

Beiträge: 38
Registriert: 23.02.2005

erstellt am: 08. Mrz. 2005 09:17    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

hi Brischke,
ich will dich nicht nerven, aber ich sitze hier wie auf Kohlen, und warte auf deine Antwort, wenn ich weiss wie das geht mit dem entity handle. Ich denke mal, man muss es in der SQl-Datenbank als Felkd hinterlegen oder, nur wie krieg ich die information mit welchem Objekt der Datensatz zusammenhängt in dieses Feld rein?
Muss man das immer manuell eintragen, oder geht das automatisch? Wenn es nicht automatisch geht, kannst du mir dann bitte ne erklärung mitschicken? ich bin eben neu auf dem gebiet! Dank Dir schon mal :-)

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9803
Registriert: 01.12.2003

AutoCAD 2.5 - 2022, LDD, MDT, RD, ADT, Civil
Inventor AIP 4-11, 2008 -2022
Win 10

erstellt am: 08. Mrz. 2005 09:38    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 Dexta 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Dexta:
hi Brischke,
ich will dich nicht nerven, aber ich sitze hier wie auf Kohlen, und warte auf deine Antwort, ... Dank Dir schon mal :-)

Holger Brische verdient mit Kundensupport sein Geld, die CAD.de Foren zu moderieren und Beiträge schreiben macht er dagegen ehrenamtlich (Stimmt doch Holger, oder?). Da kann man keine schnelle Antworten einfordern, bestenfalls erhoffen.
Für kommerziellen Support einfach seinen Firmenlink anklicken, anrufen oder eine Email schicken.

Welche AutoCAD Version nutzt du denn? Bitte gebe doch deine Sysinfo an.
In AutoCAD 2005 rufe ich den
1. DB_Verbindungsmanager auf,
2. Zeige mir die Datenvernknüpfungstabelle an
3. markiere alle AutoCAD Objekte (STRG+A)
4. Drücke im Fenster "Datenanzeige" oben links auf den Button "Verknüpfte Datensätze in Datenanzeige anzeigen".

Vorher noch beim Button "Datenanzeige und Abfrageoptionen"
bei Datensatzindikationseinstellungen "Nur indizierte Datensätze anzeigen" auswählen.

------------------
Mit freundlichem Gruß

Udo Hübner
----------
Der versteckte Fehler bleibt nie unentdeckt.

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

Dexta
Mitglied



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

Beiträge: 38
Registriert: 23.02.2005

erstellt am: 08. Mrz. 2005 09:58    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

Hi Udo,
Ich erwarte ja keine schnelle Antwort, ich bin ja froh, dass mir überhuapt jemand hilft! :-) Aber du weißt ja wahrscheinlich selbst wie das ist, wenn du vor deiner Kiste sitzt und einfach nicht weitermachen kannst, weil du ein Problem nicht gelöst bekommst, was sehr ärgerlich ist.

Also, das mit nur verknüpfte Datensätze anzeigen stimmt schon so weit, wußte ich aber auch schon vorher, hab ich auch oben im Text mal erwähnt gehabt, egal! :-)

ne, Holger hat mir schon nen spitzen Tip gegeben, und zwar das mit dem Entity_handle, was anscheinend ein Feld in der datenbank ist, indem die Namen der Objekte stehen, mit denen der Datensatz verknüpft ist. Denn ich will diese Eingrenzung der Daten,sprich nur verknüpfte Objekte anzeigen in meiner hiterlegten SQL-Datenbank ausführen. Was perfekt gehen würde, wenn ich das Feld Entity_handle
(wie in jet_dbsamples.udl/Beispieldatenbank) hätte, da ich dann nur ne SQL-Abfrage drüberlaufen lassen muss, mit
"where (Entity_handle)<> 0."

Also, kannst Du mir bitte sagen, wie ich ein solches Feld anlege, wo die mit dem Datensatz verknüpften Objekte im Feld stehen?
das Feld anlegen ist ja nicht das Problem, sondern ob es möglich ist, dass die Objekte automatisch, wenn die Verknüpfung erstellt wird im Feld angezeigt werden. :-)

Danke schonmal Udo!! :-)

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9803
Registriert: 01.12.2003

AutoCAD 2.5 - 2022, LDD, MDT, RD, ADT, Civil
Inventor AIP 4-11, 2008 -2022
Win 10

erstellt am: 08. Mrz. 2005 11:06    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 Dexta 10 Unities + Antwort hilfreich

Hallo Dexta,
nachdem ich deine allererste Frage noch einmal gelesen hatte, war mir auch klar, dass du eigentlich in deiner Tabelle erkennen möchtest, ob ein Datensatz überhaupt mit einem AutoCAD Objekt verknüpft ist (für weitere Auswertungen).
Über die DBVERBINDUNG in AutoCAD wird ausschließlich am Objekt ein Vermerk (über Extended Entitiy Data) gesetzt, das den Namen der Datenquellenverknüpfung und (in hexadezimaler Form) die Inhalte der Schlüsselfelder enthält.

Man kann nur mit einem Zusatzprogramm aus AutoCAD heraus ein vorgesehenes Datenbankfeld z.B. mit dem Objekthandle füllen.
Zu beachten ist dabei jedoch, dass nicht nur 1:1 Verknüpfungen, sondern N:N Verknüpfungen möglich sind (ein Datensatz ist mit mehreren Objekten verknüpft und ein Objekt kann mit mehreren Datenfeldern verknüpft sein).

Bei AutoCAD Map sind diese Funktionen als Lisp Funktionen bereitgestellt, mit AutoCAD pur muss man die EEDs entschlüsseln und  die gewünschten Infos direkt in die Datenbank schreiben.

------------------
Mit freundlichem Gruß

Udo Hübner
----------
Der versteckte Fehler bleibt nie unentdeckt.

[Diese Nachricht wurde von CAD-Huebner am 08. Mrz. 2005 editiert.]

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9803
Registriert: 01.12.2003

AutoCAD 2.5 - 2022, LDD, MDT, RD, ADT, Civil
Inventor AIP 4-11, 2008 -2022
Win 10

erstellt am: 09. Mrz. 2005 06:51    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 Dexta 10 Unities + Antwort hilfreich

Nachdem ich hier bisher nur wenig hilfreiche Beitrage abgeliefert habe hier noch mal ein Link auf eine geeignete Funktion um ein Datenbankfeld mit VBA und SQL via CAO zu aktualisieren.

Entscheidend ist hier die Funktion UpdateDatabaseFromAttributes() von Jon Fleming/Scott McFarlane in diesem Beitrag: http://discussion.autodesk.com/thread.jspa?threadID=342273

Muss man nur etwas anpasssen um den Objekthandle in ein Tabellenfeld zu schreiben oder auch um die Anzahl der verlinkten Objekte hochzuzählen. http://discussion.autodesk.com/thread.jspa?threadID=342273


------------------
Mit freundlichem Gruß

Udo Hübner
----------
Der versteckte Fehler bleibt nie unentdeckt.

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

Dexta
Mitglied



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

Beiträge: 38
Registriert: 23.02.2005

erstellt am: 09. Mrz. 2005 11:58    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

Hi Udo,
dank dir schonmal, bloß habe ich ein kleines Problem, ich checke den code nicht ganz, da ich in vba zwar mitlerweile einiges kann, aber mich nicht wirklich als gut bezeichnen würde! :-)
Was du mir geschrieben hast, ist der code ja genau das, was ich brauche!
was muss ich denn noch in autocad, bzw. in der sql-datenbank machen, ein feld kreiren (Entity_handle)?
zählt der code mir die anzahl der verknüpfungen auf?
und zuletzt noch eine frage:
was steckt hinter diesen variablen im code:
und was macht dieser?

oRSet.Find "<building ID field name> = " & <the value you want>
Case <some attrib name>
vAttrib.TextString = oRSet!<corresponding field name>
Case <another attrib name>
vAttrib.TextString = oRSet!<corresponding field name>

p.s.: ich glaube, jetzt ist die lösung nicht mehr weit!! Bis denn :-)

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)2024 CAD.de | Impressum | Datenschutz