Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Werte ausAccess Bzw Excel Dateien auslesen.

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:  Werte ausAccess Bzw Excel Dateien auslesen. (3109 mal gelesen)
JeHaLa
Mitglied
Bautechniker

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

Beiträge: 2
Registriert: 22.04.2005

erstellt am: 08. Aug. 2005 11:03    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 Miteinander

ich möchte aus einer bestehenden Access-datenbank Werte auslesen und diese in ein Attribut als Wert geben. Geht das ohne daß ich access öffne?

Gruß und schon mal danke im Vorraus
JeHaLa

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Die Phönizier haben das Geld erfunden - aber warum so wenig?
(Johann Nepomuk Nestroy)

erstellt am: 09. Aug. 2005 23: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 Nur für JeHaLa 10 Unities + Antwort hilfreich

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 17. Aug. 2005 20: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 Nur für JeHaLa 10 Unities + Antwort hilfreich


excelimport.gif

 
Ich habe mir einen kleinen Excel Import für Punkte mit Attributen
geschrieben. Hier die Kernpunkte für den Import

Excel initialisieren
...
On Error GoTo Excel_fehler

Set excel_app = GetObject(, "excel.application")
Set excel_wb = excel_app.ActiveWorkbook
Set excel_ws = excel_wb.ActiveSheet
Set excel_range = excel_app.Selection

If excel_range.Areas.Count <> 1 Then
  MsgBox "Es darf nur eine Region markiert sein!", vbCritical
  GoTo Excel_fehler
End If

MaxReihe = excel_ws.UsedRange.Rows.Count
....

Werte aus Excel
...
    str_Wert = excel_ws.Cells(i, com_Y.ListIndex + 1)
    y = d_wert(str_Wert)
    str_Wert = excel_ws.Cells(i, com_X.ListIndex + 1)
    x = d_wert(str_Wert)
....

Auschnitt Blockeinfügen mit Attributten
...
  On Error GoTo Fehler_Insert_block
  'On Error GoTo 0
  Select Case acad_TYP
      Case 14
            Set Blockobj = obj_ACAD_app.ActiveDocument.ModelSpace.InsertBlock(InsPkt, Block, Skal_Y, Skal_X, Richtung)
      Case 15, 16, 17
            Set Blockobj = obj_ACAD_app.ActiveDocument.ModelSpace.InsertBlock(InsPkt, Block, Skal_Y, Skal_X, 1, Richtung)
      Case Else
            MsgBox "ACAD TYP ist nicht bekannt !", vbCritical
            Exit Function
  End Select
 
  ' Wenn Attribut verlangt
  If attr = True Or AttrHoehe = True Or AttrVA = True Then
      On Error GoTo 0
      ' Hat der eingefügte Block Attribute
      If Blockobj.HasAttributes Then
        attributes = Blockobj.GetAttributes
        For A = LBound(attributes) To UBound(attributes)
            Set attribut = attributes(A)
           
            If UCase(attribut.TagString) = UCase("VA") And AttrVA = True Then
                attribut.TextString = VA
            End If
           
            If UCase(attribut.TagString) = UCase("PNR") And attr = True Then
                attribut.TextString = pnr
            End If
           
            If UCase(attribut.TagString) = UCase("HOEHE") And AttrHoehe = True Then
                attribut.TextString = ZHöhe
            End If
        Next A
      End If     
  End If
....


Jetzt sollte es mit Excel klappen

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Die Phönizier haben das Geld erfunden - aber warum so wenig?
(Johann Nepomuk Nestroy)

erstellt am: 17. Aug. 2005 23:23    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 JeHaLa 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Stelli1:

Set excel_app = GetObject(, "excel.application")
Set excel_wb = excel_app.ActiveWorkbook
Set excel_ws = excel_wb.ActiveSheet

... und schon rauscht das dritte Ei
wieder voll am Nest vorbei!
(R. J. Gernhardt)

Ich glaube nicht, dass dieser Code läuft, wenn Excel gar nicht installiert ist. Dass es außerdem um Access ging, ist wahrscheinlich nebensächlich - da ist vieles übertragbar. Aber die Frage lautete eindeutig: "... ohne dass ich Access öffne".

Gruß, Axel Strube-Zettler

------------------
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

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: 4171
Registriert: 17.05.2001

ACAD20XX, defun-tools

erstellt am: 18. Aug. 2005 08:49    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 JeHaLa 10 Unities + Antwort hilfreich

Hallo JeHaLa,

wenn mich nichts täuscht ist im Sample-Verzeichnis der AutoCAD-Installation ein Bsp der Verbindung von AutoCAD mit Access enthalten.

Daraus kann man sich den Weg ja 'abschauen'.

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

Stelli1
Moderator
Verm.-Ing.


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

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 18. Aug. 2005 11:03    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 JeHaLa 10 Unities + Antwort hilfreich

Hey ihr Moderatoren
"Thema:   Werte ausAccess Bzw Excel Dateien auslesen"

Wenn das Ei denn genau landen soll sollte man dann auch noch zwischen
öffnen und installiert unterscheiden.


Hier dann die Access Lösung

Code:

Private Sub CommandButton1_Click()

Dim adoCon As New ADODB.Connection
Dim adoRS As ADODB.Recordset
Dim field As ADODB.field
Dim DbDatei As String

  DbDatei = "E:\Projekte\Entw\vb6\tb_edbs3\vorlage.mdb"
 
  adoCon.CursorLocation = adUseClient
  adoCon.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & DbDatei

  Set adoRS = New ADODB.Recordset
  adoRS.Open "select Folie,Elementardaten from EDBS_Surface_Folien Order by Folie", adoCon, adOpenStatic, adLockOptimistic

 
  ' Felder
  For Each field In adoRS.Fields
      Debug.Print field.Name & "  " & field.Type ' & .....
  Next field

  ' Der Reihe nach
  If adoRS.RecordCount > 0 Then
     adoRS.MoveFirst
     While Not adoRS.EOF
         Debug.Print adoRS("Folie").Value
         Debug.Print adoRS(0).Value
         Debug.Print adoRS("Elementardaten").Value
         Debug.Print adoRS(1).Value
         adoRS.MoveNext
     Wend
  End If
 
  ' Suchen
  adoRS.Filter = "Folie = '011'"
  Debug.Print adoRS.RecordCount
  ' oder oder
 
  ' Schliessen und aufräumen
  adoRS.Close
  adoCon.Close
  Set adoRS = Nothing
  Set adoCon = Nothing
 
End Sub



Viel Erfolg

[Diese Nachricht wurde von Stelli1 am 18. Aug. 2005 editiert.]

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