Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Datum vom Formular nach Access Tabelle 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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Datum vom Formular nach Access Tabelle schreiben (3272 mal gelesen)
vittorio0
Mitglied



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

Beiträge: 35
Registriert: 13.07.2009

AutoCAD 2009, 2011, Access 2003

erstellt am: 19. Sep. 2011 07:21    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

Liebes Forum

Ich habe eine ADO Verbindung mit einer Acxcess Tabelle aufgebaut und schreibe die Werte die ich in einer Form habe in diese Tabelle. Darunter hat es auch Datumsfelder. Solange ich ein Datum in diesem Feld habe funktioniert alles. Ist aber das Datumsfeld in der Form leer, kommt eine Fehlermeldung. (Fehler bei einem aus mehreren Schritten bestehendem Vorgang. Prüfen Sie die einzelnen Statuswerte)
Das Formularfeld mit dem Datum ist ja ein String. Ich hab auch probiert mit

Code:
      oRecSet!F64 = cdate(frmEditAttr.F64.Text) 'a date

jedoch die gleiche Fehlermeldun. Was mach ich da falsch?
Es muss doch möglich sein ein Feld das kein Datum enthält in die Tabelle zu schreiben.

Vielen Dank für die Hilfe.


Code:
On Error GoTo ErrorRoutine
' Attribute von frmEditAttr nach MS Access schreiben
Dim oConnect As New ADODB.Connection
Dim oRecSet As New ADODB.Recordset
Dim strDWG As String
Dim sSQL As String
Dim dwgPrefix As String
Dim dwgName As String
Dim DWGpath As String
Dim coderesult As Integer
strDWG = frmEditAttr!F23

'MsgBox strDWG
' build ADO connection string
oConnect.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data"
' MS Access Datenbank Verbindungspfad
oConnect.Properties("Data Source") = "L:\zvmfb\zvmfbdat.mdb"
oConnect.Open

' build the recordset
oRecSet.CursorLocation = adUseClient
oRecSet.CursorType = adOpenKeyset
oRecSet.LockType = adLockOptimistic
sSQL = "Select * From [tbl_Zeichnungen];"
oRecSet.Open sSQL, oConnect

'oRecSet.Find "[F23] = '" & strDWG & "'"
If Not oRecSet.EOF Then ' found a record matching current block ref
dwgPrefix = ThisDrawing.GetVariable("dwgprefix")
dwgName = ThisDrawing.GetVariable("dwgname")
DWGpath = dwgPrefix & dwgName

' read from frmEditAttr and put values in ZVdb
       
        oRecSet!F2 = frmEditAttr.F2.Text ' Titelzeile
        oRecSet!F39 = frmEditAttr.F39.Text 'Titelzeile 2
        oRecSet!F52 = frmEditAttr.F52.Text 'Titelzeile 3
        oRecSet!F3 = frmEditAttr.F3.Text 'Baugruppennummer
        oRecSet!F14 = frmEditAttr.F14.Text 'Ersatz für
        oRecSet!F10 = frmEditAttr.F10.Text 'Ursprung
        oRecSet!F64 = frmEditAttr.F64.Text 'a date
        oRecSet!F66 = frmEditAttr.F66.Text 'b date
       
       
        oRecSet.Update
        Me.Infoline = "Attribute wurden in die Zeichnunsverwaltung eingetragen !"
     
End If
Set oRecSet = Nothing
Set oConnect = Nothing

ErrorRoutineExit:
Exit Sub

ErrorRoutine:
    GoTo ErrorRoutineExit
End If
MsgBox "Error: " & Err.Number & " " & Err.Description
GoTo ErrorRoutineExit


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

MB007
Mitglied



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

Beiträge: 46
Registriert: 02.02.2009

erstellt am: 20. Sep. 2011 09:16    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 vittorio0 10 Unities + Antwort hilfreich

Hallo vittorio0,

ein Datumsfeld kann nur mit einem Datum oder NULL gefüllt werden.

Wenn das Feld leer sein soll, kann man das mit

oRecSet!F64 = NULL

erreichen.

(Mit oRecSet!F64 = 0 wird das Feld zu '00:00:00'.)


Gruß

MB007

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

MB007
Mitglied



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

Beiträge: 46
Registriert: 02.02.2009

erstellt am: 21. Sep. 2011 06:53    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 vittorio0 10 Unities + Antwort hilfreich

Hallo vittorio0,

bei Deinem Code könnte man das so machen:

On Error GoTo ErrorRoutine
' Attribute von frmEditAttr nach MS Access schreiben
Dim oConnect As New ADODB.Connection
Dim oRecSet As New ADODB.Recordset
Dim strDWG As String
Dim sSQL As String
Dim dwgPrefix As String
Dim dwgName As String
Dim DWGpath As String
Dim coderesult As Integer
strDWG = frmEditAttr!F23

'MsgBox strDWG
' build ADO connection string
oConnect.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data"
' MS Access Datenbank Verbindungspfad
oConnect.Properties("Data Source") = "L:\zvmfb\zvmfbdat.mdb"
oConnect.Open

' build the recordset
oRecSet.CursorLocation = adUseClient
oRecSet.CursorType = adOpenKeyset
oRecSet.LockType = adLockOptimistic
sSQL = "Select * From [tbl_Zeichnungen];"
oRecSet.Open sSQL, oConnect

'oRecSet.Find "[F23] = '" & strDWG & "'"
If Not oRecSet.EOF Then ' found a record matching current block ref
dwgPrefix = ThisDrawing.GetVariable("dwgprefix")
dwgName = ThisDrawing.GetVariable("dwgname")
DWGpath = dwgPrefix & dwgName

' read from frmEditAttr and put values in ZVdb
     
        oRecSet!F2 = frmEditAttr.F2.Text ' Titelzeile
        oRecSet!F39 = frmEditAttr.F39.Text 'Titelzeile 2
        oRecSet!F52 = frmEditAttr.F52.Text 'Titelzeile 3
        oRecSet!F3 = frmEditAttr.F3.Text 'Baugruppennummer
        oRecSet!F14 = frmEditAttr.F14.Text 'Ersatz für
        oRecSet!F10 = frmEditAttr.F10.Text 'Ursprung
       
If frmEditAttr.F64.Text <> "" then
oRecSet!F64 = frmEditAttr.F64.Text 'a date
else
oRecSet!F64= NULL   'empty date
End if

        oRecSet!F66 = frmEditAttr.F66.Text 'b date
     
     
        oRecSet.Update
        Me.Infoline = "Attribute wurden in die Zeichnunsverwaltung eingetragen !"
   
End If
Set oRecSet = Nothing
Set oConnect = Nothing

ErrorRoutineExit:
Exit Sub

ErrorRoutine:
    GoTo ErrorRoutineExit
End If
MsgBox "Error: " & Err.Number & " " & Err.Description
GoTo ErrorRoutineExit

Gruß

MB007

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

vittorio0
Mitglied



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

Beiträge: 35
Registriert: 13.07.2009

AutoCAD 2009, 2011, Access 2003

erstellt am: 21. Sep. 2011 10:00    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 MB007

herzlichen Dank für Deine Tipps. Die haben mir auf die Sprünge geholfen.
Da ich etwa 25 Attribute habe wäre ein Einzeiler schöner. Habs noch nicht probiert aber der folgende Code sollte hoffentlich das gleiche erreichen.

Gruss aus Bern

Code:
oRecSet!F64 = NZ(frmEditAttr.F64.Text,NULL) 'a date

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

MB007
Mitglied



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

Beiträge: 46
Registriert: 02.02.2009

erstellt am: 21. Sep. 2011 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 vittorio0 10 Unities + Antwort hilfreich

Hallo vittorio0,

die NZ-Funktion läuft bei mir nur in Access.

Damit der Code aber trotzdem schöner wird:


''''''''''''''''''''''''''''''''''''''''''''''

Code:

Sub start()

'''

oRecSet!F64 = fktNZ(frmEditAttr.F64.Text) 'a date


'''

End sub


Function fktNZ(ByVal s As String) As Variant
    If s = "" Then
        fktNZ = Null
    Else
        fktNZ = s
    End If
End Function


''''''''''''''''''''''''''''''''''''''''''''''''

Gruß

MB007

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

vittorio0
Mitglied



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

Beiträge: 35
Registriert: 13.07.2009

AutoCAD 2009, 2011, Access 2003

erstellt am: 18. Okt. 2011 20:36    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

hab ich nun probiert, Besten Dank!

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