Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  VBA / ODBC / SQL

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
  
NVIDIA GTC Paris und ISC High Performance-Konferenz 2025, eine Pressemitteilung
Autor Thema:  VBA / ODBC / SQL (2552 mal gelesen)
Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

erstellt am: 07. Jan. 2008 17: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 zusammen!

Ich möchte Daten aus einer bestehenden Datenbank in eine UserForm importieren mittels ODBC / SQL.
Dazu habe ich aber noch keinerlei Erfahrung und möchte Euch mal wieder um Hilfe bitten, wie ich da vorgehen muß bzw. kann?
Diese Infos stellt die Datenbank mir zur Verfügung.

Tablename : PROD_DEFINITION
Tablelabel: Artikelstamm

Columnname        Columntype          ColumnLabel
----------------------------------------------------------
PD_NUM            VARCHAR(25)        Artikelnummer
PD_BEZ            VARCHAR(200)        Artikelbezeichnung
M_MATGRUPPE_ID    INTEGER            Materialgruppe
M_LAGER_ID        INTEGER            Lagercode
M_BESTELLTEXT      MEMO                Bestelltext
M_LIEF_PD_NUM      VARCHAR(20)        Artikelnummer Lieferant

Die Inhalte sollen in einer TextBox eingezeigt werden.

Kann mir da jemand helfen?

Danke.

Gruß

Dirk

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: 1526
Registriert: 17.08.2005

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

erstellt am: 07. Jan. 2008 17:11    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 Dirk.B 10 Unities + Antwort hilfreich

Hallo Dirk,

schau mal hier oder hier.
Da sind mal Beispiele mit Access.

Was für eine Datenbank hast du ? Das wäre glaube ich nicht so unwichtig 

Wilfried Stelberg

------------------
Warum lisp'eln wenn's auch anders geht.
www.ib-stelberg.de

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1360
Registriert: 24.07.2002

erstellt am: 07. Jan. 2008 19: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 Nur für Dirk.B 10 Unities + Antwort hilfreich

Hallo Dirk,

Da es sich bei deiner Datenbank, denke ich, um eine SQL-Datenbank handelt könnte dir dieser Link wahrscheinlich weiter helfen.

Gruß, Carsten

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

dj_assp
Mitglied
Tech. Angestellter


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

Beiträge: 50
Registriert: 02.10.2006

Autocad VBA

erstellt am: 10. Jan. 2008 08:35    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 Dirk.B 10 Unities + Antwort hilfreich

Hallo Dirk

Ich weis nicht ob du dein Problem schon gelöst hast!
Ich habe einmal ein Program geschrieben mit dem man aus einer Access Datenbank
Textbausteine entnehmen kann. Ich habe es so gelöst:

gDatenbank = "c:\temp\erdb.mdb"

    Dim dbErdb As ADODB.Connection
    Dim rdX2 As ADODB.Recordset
    Dim intRecords As Integer
    Dim ID As String * 5
    Dim DEText As String * 255
    Dim ENText As String * 255
    Dim RUText As String * 255
    Dim Zeile As String

    Set dbErdb = New ADODB.Connection
    With dbErdb
        .CursorLocation = adUseClient
        .Mode = adModeShareDenyNone
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .Properties("Data Source") = gDatenbank
        .Open
    End With

    Set rdX2 = New ADODB.Recordset
    With rdX2
        .ActiveConnection = dbErdb
        .CursorLocation = adUseClient
        .CursorType = adOpenKeyset
        .LockType = adLockOptimistic
        .Source = "SELECT * FROM Sheet1"
        .Open
    End With

    For intRecords = 0 To rdX2.RecordCount - 1
       
        If rdX2.Fields(0) <> 0 Then
            ID = rdX2.Fields(0)
        Else
            ID = "keine Id / no id"
        End If
        If rdX2.Fields(2) <> 0 Then
            DEText = rdX2.Fields(2)
        Else
            DEText = "kein Text / no text"
        End If
        If rdX2.Fields(1) <> 0 Then
            ENText = rdX2.Fields(1)
        Else
            ENText = "kein Text / no text"
        End If

        If rdX2.Fields(3) <> 0 Then
            RUText = rdX2.Fields(3)
        Else
            RUText = "kein Text / no text"
        End If
       
        Zeile = ID & Chr(9) & Trim(DEText) & "  --/--  " & Trim(ENText) & "  --/--  " & Trim(RUText)
       
        ListBox1.AddItem (Zeile)
        rdX2.MoveNext
       
    Next intRecords

Vieleicht hilft es dir.

Grüss Alex

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

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

erstellt am: 15. Jan. 2008 06:55    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 und guten Morgen!

Vielen Dank für Eure Hilfe .

Gruß

Dirk

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

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

AutoCAD 2021/2022
CAD+T
HP ZBook 15 G4, 64-bit,
WIN 10 Pro

erstellt am: 12. Dez. 2008 09:11    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 Zusammen!

Leider komme ich erst jetzt wieder dazu mich um meine Dantenbankanbindung zu kümmern.
Mit Eurer Hilfe hatte ich es geschafft und es läuft recht gut.

Wie kann ich den noch einen Filter einbauen, so aus der Datenbankspalte PD_NUM nur die Artikel beginnend mit FST in meinem ListView angezeigt werden?

Dieses ist mein Aufhänger und ich komme nicht auf die genaue Syntax.

Code:

Set rs = db.OpenRecordset("select count(FST*)From PD_NUM" & "Artikelstamm")

Kann mir da jemand weiter helfen.

Vielen Dank.

Gruß

Dirk

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


Ex-Mitglied

erstellt am: 12. Dez. 2008 09:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi Dirk
Zitat:
select count(FST*)From PD_NUMArtikelstamm

Dein Statement würde nicht funktionieren, oder?

Filterung mit Sql wird mit WHERE gemacht, z.B.

Code:
SELECT * FROM ARTIKEL WHERE BEZEICHNUNG like "FST*"
es kann jetzt je nach SQL-Engine statt dem FST* ein FST% notwendig sein (als Ersatz für Wildcharacter)

- alfred -


Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

erstellt am: 12. Dez. 2008 10:56    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 Alfred!

Vielen Dank für die Info.
Ich habs nun so gelöst und es funktioniert.

Code:

'---Filter für Artikelbezeichnung setzen------------------------------
Select Case True
    Case opbDBFST.Value
        Set rs = db.OpenRecordset("SELECT * FROM Artikelstamm WHERE PD_NUM LIKE 'FST*'")
    Case opbDBPOL.Value
        Set rs = db.OpenRecordset("SELECT * FROM Artikelstamm WHERE PD_NUM LIKE 'POL*'")
    Case opbDBWST.Value
        Set rs = db.OpenRecordset("SELECT * FROM Artikelstamm WHERE PD_NUM LIKE 'WST*'")
End Select

Nochmals Danke an alle.

Gruß

Dirk

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

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

AutoCAD 2021/2022
CAD+T
HP ZBook 15 G4, 64-bit,
WIN 10 Pro

erstellt am: 13. Dez. 2008 14:22    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 Zusammen!

Mit der Verbindung und der Abfrage zu einer Access - Datenbank funktionierts jetzt echt gut.
Bei dieser Access - Datenbank handelt es sich bislang aber um eine Testumgebung.

Verbindung zur Access - Datenbank:

Code:

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim LItem As ListItem
'---Variablen setzen
Set db = OpenDatabase(OptionenFST.TextBoxSQLdat.Text & "\Borm_SQL.mdb")
Set rs = db.OpenRecordset("SELECT * FROM Artikelstamm WHERE PD_NUM LIKE '" & Kriterium & "'")

Nun soll ich eine SQL 2005 Enterprise Datenbank über ODBC verknüpfen.

Diese habe ich im WWW dazu gefunden.
Hier wird aber anscheinend die SQL - Datenbank direkt angesprochen, oder?

Code:

' Connection SQL-Server 2005 mit SQL Authentifizierung
Dim oConn As ADODB.Connection

Set oConn = New ADODB.Connection
With oConn
  .Provider = "SQLNCLI.1"
  .Properties("Data Source") = "Servername"
  .Properties("User ID") = "Benutzername (SA)"
  .Properties("Password") = "Passwort"
  .Properties("Initial Catalog") = "Start-DB"
  .CursorLocation = adUseClient
  .Open
End With

Wo liegt da nun der Unterschied zu ODBC, oder anders gefragt, wie muß die Verbindung über ODBC lauten?

Vielen Dank im voraus.

Gruß

Dirk


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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1360
Registriert: 24.07.2002

erstellt am: 13. Dez. 2008 15: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 Dirk.B 10 Unities + Antwort hilfreich

Hi Dirk,

Nur mal ne Frage am Rande. Willst du die Datenbank nur Abfragen, oder willst du (später) auch noch in die Datenbank schreiben?!
Kannst du nicht von dem Lieferanten deiner Datenbank eine Schnittstelle bekommen?!

Gruß, Carsten

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

Dirk.B
Mitglied
Tischler / Leiter Arbeitsvorbereitung


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

Beiträge: 534
Registriert: 25.11.2003

AutoCAD 2021/2022
CAD+T
HP ZBook 15 G4, 64-bit,
WIN 10 Pro

erstellt am: 15. Dez. 2008 08:30    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 Carsten!

Der Lieferant tut sich damit ein wenig schwer die Info zugeben.

In erster Linie möchte ich nur eine Abfrage starten um einige Informationen zu bekommen.

Gruß

Dirk

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



Anzeige:Infos zum Werbeplatz >>

Local CRS CAD APP für GIS, Vermessung und Kartografie, AEC - Architektur-, Ingenieur- und Bauwesen, Allgemeine Werkzeuge

Mit crsTools Local CRS können Georeferenzierte Lagepläne aus verschiedenen Koordinatensystemen (UTM, Gauß-Krüger) in ein praktisch verzerrungsfreies, lokales Koordinatensystem transformiert werden. Und wieder zurück. Man arbeitet also mit realen, der Örtlichkeit entsprechenden, Längen und Maßen.

Stefan1905
Mitglied
Dipl.-Ing.


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

Beiträge: 18
Registriert: 07.01.2009

XP prof 5.1.2600 SP3 Build 2600
Prozessor:x86/15/1/2 Genuine 1700 MHz
AUTOCAD MECHANICAL 2006
OFFICE 2003

erstellt am: 07. Jan. 2009 11:39    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 Dirk.B 10 Unities + Antwort hilfreich

Hallo Dirk,
leider kann ich Dir auch nicht weiterhelfen.Trotzdem schönen Gruß vom IFF
Stefan

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