Hot News:

Unser Angebot:

  Foren auf CAD.de
  VBasic / vb.net / vbs / wsh
  von AUtoCaD in Access Datenbank schreiben

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
  
Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
Autor Thema:  von AUtoCaD in Access Datenbank schreiben (1220 mal gelesen)
guido159
Mitglied



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

Beiträge: 33
Registriert: 18.12.2004

ACAD 2005

erstellt am: 09. Jan. 2005 14:05    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,
hätte wieder mal ein Anliegen,

will mir ne Stückliste basteln und würde gerne von AutoCad aus in ne mdb Datei schreiben. Hab vordefinierte Spaltennamen zB POS, welche werte erhalten sollen.

Hab mal zum testen folgenden Code erstellt, welcher mir in der Spalte Pos die werte 1, 2, 3, bis ne bestimmte Anzahl schreiben soll.  Funktioniert aber leider nicht.

Private Sub CommandButton4_Click()

Datei = "C:\Stkliste.mdb"
ADOC.Open _
"Provider=Microsoft.Jet.OLEDB.4.0;DATA Source= " & Datei & ";"
DBS.Open "Einzelteil", ADOC, adOpenKeyset, adLockOptimistic

'counter ist ne nach oben festgelegte anzahl

For k = 0 To counter
DBS.MoveLast
DBS!Pos = k + 1

Next k

DBS.Save
DBS.Close
ADOC.Close

End Sub


Kann mir dazu Jemand nen Rat geben, würd mir wahnsinnig helfen

mfg


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

BloodyMess
Mitglied
Applicationingenieur


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

Beiträge: 604
Registriert: 06.06.2002

AutoCAD Map 3D 2005 (SP2 & SP1) / Win XP pro (SP1) & Win 2000 pro (SP4)
AutoCAD Map 2000i / WinNT (SP6)

erstellt am: 09. Jan. 2005 19: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 guido159 10 Unities + Antwort hilfreich

Hallo Guido,

hab Dir nen kleines Beispiel erstellt, welches Die zeigt, wie man was machen kann. Hab das über DAO gemacht (musst also noch über die Verweise mit einbinden).

Code:
Sub test()

'öffnen der Datenbank und anlegen einer Tabelle
Dim db As Database
Set db = OpenDatabase("C:\db2.mdb")

Dim TabDef As TableDef
Set TabDef = db.CreateTableDef("Test")

TabDef.Fields.Append TabDef.CreateField("Name", dbText)
db.TableDefs.Append TabDef

'befüllen der Tabelle mit Einträgen
Dim strSQL As String
Dim strArray(3) As String
Dim iZaehler As Integer

strArray(0) = "Peter"
strArray(1) = "Mark"
strArray(2) = "Erna"
strArray(3) = "Joseph"

For iZaehler = 0 To 3
    strSQL = "insert into Test(Name) Values('" & strArray(iZaehler) & "')"
    db.Execute strSQL
Next iZaehler

'auslesen der Einträge ins DebugFenster
Dim rs As Recordset
Set rs = db.OpenRecordset("select * from Test")

rs.MoveFirst
Do While Not rs.EOF
    Debug.Print rs.Fields(0)
    rs.MoveNext
Loop

db.Close

End Sub


Vielleicht hilft Dir das ja weiter. Schönen Sonntag noch.

Gruss TP

------------------

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

guido159
Mitglied



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

Beiträge: 33
Registriert: 18.12.2004

ACAD 2005

erstellt am: 10. Jan. 2005 16: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

HI,  danke für die schnelle Antwort

hab jedoch ne andre Lösung auf deinem Ansatz gefunden, also danke für die Hilfe BloodyMess.


Hier der Code für diejenigen die es vielleicht auch mal haben wollen
---------------------------------------------------------------------

'erstellen der Access Datenbank:
Dim acApp        As access.Application
Dim strDBPath    As String
Dim FS As FileSystemObject

Const DB_PATH As String = _
  "C:\akt.mdb"

Debug.Print DB_PATH
Set FS = New FileSystemObject

If FS.FileExists(DB_PATH) Then

'löschen der datei falls schon vorhanden
Kill (DB_PATH) 'SHELL Befehl
GoTo sprung1

Else
sprung1:
  Set acApp = New access.Application
      With acApp
        .NewCurrentDatabase DB_PATH
        .DoCmd.RunSQL "CREATE TABLE Tabelle1 ([ID] INTEGER,[Pos] TEXT, ......);"
   
  End With
End If
  acApp.Quit
  Set acApp = Nothing


'eintragen von Werten in die Datenbank  ------------------------

Dim ADOC1 As New ADODB.Connection
Dim DBS1 As New ADODB.Recordset
'Dim Dia As UserForm
Dim s As String
Dim k1 As Integer
Dim Datei As String

Debug.Print PFAD = " & DB_PATH"

'Datei = "C:\akt.mdb"
ADOC1.Open _
"Provider=Microsoft.Jet.OLEDB.4.0;DATA Source= " & DB_PATH & ";"
DBS1.Open "Tabelle1", ADOC1, adOpenKeyset, adLockOptimistic

k1 = 1
For k1 = 1 To Anzahl

    DBS1.AddNew
    DBS1!ID = k1

Next
DBS1.Update
DBS1.Close
---------------------------------------------------------------
schönene Tag noch

Guido

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

BloodyMess
Mitglied
Applicationingenieur


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

Beiträge: 604
Registriert: 06.06.2002

AutoCAD Map 3D 2005 (SP2 & SP1) / Win XP pro (SP1) & Win 2000 pro (SP4)
AutoCAD Map 2000i / WinNT (SP6)

erstellt am: 11. Jan. 2005 00: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 guido159 10 Unities + Antwort hilfreich

Hallo Guido,

keine Frage, das WAS Du da machst funktioniert - nur WIE? Deinen Code würdest von mir zurückbekommen und müßtest nochmal machen. Hast Du Dir meinen Code überhaupt angeschaut? Um auf Access Datenbanken zuzugreifen kann man es so machen wie Du, oder man benutzt DAO, weil es für den Zugriff auf eine Access Datenbank optimiert ist.

Ueberdenk Dir bitte mal die folgende Dinge in deinem Code :
- die If Schleife mit der Sprungmarke hinter einem Else - irgendwie fraglich das Ganze
- wozu ein Object von Access anlegen? dauert viel zu lange
- warum zweimal die Datenbank oeffnen?
- es sind immer noch nicht alle Variablen deklariert!
- Shell Befehle ??? nicht, wenn es anders geht und das FSO kann noch viel mehr!
- Goto ??? ... nur benutzen, wenn nix anderes geht


Nachfolgender Code tut genau das selbe wie dein Code, vielleicht nimmst Du diesen etwas gruendlicher auseinander.

Verweise auf:
- Microsoft Scripting Runtime
- Microsoft DAO 3.6 Object Library

Code:
Sub test()

Dim db As Database
Dim TabDef As TableDef
Dim iZaehler As Integer

Dim FSO As FileSystemObject
Set FSO = CreateObject("Scripting.FileSystemObject")

Const DB_PATH As String = "C:\db3.mdb"

'prüfung auf existenz der datenbank
If FSO.FileExists(DB_PATH) = True Then
    FSO.DeleteFile (DB_PATH)
End If

'datenbank erzeugen und öffnen
Set db = CreateDatabase(DB_PATH, dbLangGeneral, dbEncrypt)
Set db = OpenDatabase(DB_PATH)

'anlegen der tabelle ... andere option ist über sql statement
Set TabDef = db.CreateTableDef("Test")
TabDef.Fields.Append TabDef.CreateField("ID", dbInteger)
TabDef.Fields.Append TabDef.CreateField("Name", dbText)
db.TableDefs.Append TabDef

'eintragen der werte
For iZaehler = 1 To 3
    db.Execute "insert into Test(ID,Name) Values('" & iZaehler & "', '" & iZaehler + 100 & "')"
Next iZaehler

db.Close

Set db = Nothing
Set TabDef = Nothing
Set FSO = Nothing


Gruss TP

------------------

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

guido159
Mitglied



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

Beiträge: 33
Registriert: 18.12.2004

ACAD 2005

erstellt am: 11. Jan. 2005 08: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

Hi BloodyMess,

hätte mir fast gedacht das da nun ne Korrektur zurück kommt :-)  bin ja Anfänger im Programmieren, deshalb passsieren solche Fehler,  aber ist fein wenn mich jemand darauf hinweist.

Hab den Code Nochmals überarbeitete, und funktioniert.  Danke nochmal.

mfg

und schönen Tag

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