1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Fehler in VBscript

Dieses Thema im Forum "Visual Basic, Visual Basic for Applications (VBA) " wurde erstellt von thunderbird, 23. Oktober 2017.

  1. thunderbird

    thunderbird New Member

    Das VBScript steigt beim "Private Sub' aus ("Fehler beim Kompilieren: benutzerdefinierter Typ nicht definiert").
    Wer kann weiterhelfen?

    Vielen Dank und Gruß
    Thunderbird


    Option Explicit

    Public Sub BFSJAHR()
    Dim CN As Connection
    Dim CMD As Command
    Dim JAHR As Variant
    JAHR = Worksheets(1).Range("JAHR").Value
    Set CN = CreateObject("ADODB.Connection")
    Set CMD = CreateObject("ADODB.Command")
    'Connection zur Datenbank öffnen
    CN.Open "PROVIDER=MSDAORA;DATA SOURCE=AK2010;" _
    & "USER ID=SEPPEL;PASSWORD=*ALL1937#;"
    'Command-Objekt der aktiven Connection zuweisen
    CMD.ActiveConnection = CN
    CMD.CommandType = adCmdText
    Daten CMD

    Set CMD = Nothing
    CN.Close
    Set CN = Nothing
    End Sub



    Private Sub Daten(Com As Command) 'Fehler beim Kompilieren: benutzerdefinierter Typ nicht definiert
    Dim CM As Command
    Dim RS As Recordset
    Dim i1 As Integer
    Dim j1 As Integer
    Dim JAHR As Integer
    Dim dummy As String
    Set CM = Com
    Set RS = CreateObject("ADODB.Recordset")
    JAHR = Worksheets(1).Range("JAHR").Value
    Com.CommandText = "select ID,CODE,DFP,AGDMSV,CTDIVOL,PHANTOM,MONATE,JAHRE,GEWICHT,KLASSE " & _
    "from ak.v_ob " & _
    "where JAHR = '" & JAHR & "' " & _
    "order by ID,CODE"


    Set RS = Com.Execute
    Sheets(2).Select
    i1 = 2

    Do While Not RS.EOF
    For j1 = 1 To 10
    If RS.Fields(j1 - 1).Value <> "" Then
    dummy = RS.Fields(j1 - 1).Value
    Else
    dummy = ""
    End If
    Cells(i1, j1).Value = dummy
    Next j1
    RS.MoveNext
    i1 = i1 + 1
    Loop

    RS.Close
    Set RS = Nothing
    End Sub
  2. BAGZZlash

    BAGZZlash Active Member

    Sicher, dass das VBScript ist, und nicht VBA? Bitte Code mal vollständig posten und dabei die Code-Tags verwenden (siehe Signatur).
  3. German

    German Well-Known Member c-b Experte

    Das ist sogar sicher VBA Excel. Und dass man die Codeformatierung verwenden soll, hört er auch nicht zum ersten mal.

    Wenn man ADODB Objekte mit "Early Binding" verwenden will, müssen diese für das VBA Projekt registriert sein.

    Menü, Haken setzen bei
    Extras -> Verweise -> Microsoft ActiveX Data Objects 6.1 Library

    Kann trotzdem sein, dass du bei den Deklarationen den Typ mit ADODB.Connection statt nur mit Connection bezeichnen musst.
  4. thunderbird

    thunderbird New Member

    Sorry, Asche auf mein Haupt! War gestern wohl nicht mein Tag. Soll nicht wieder vorkommen.
    Bin halt noch nicht so erfahren in diesen Dingen.

    Aber trotzdem vielen Dank für die Hilfe. Nachdem die Häkchen gesetzt waren, lief das VBA-Excel-Script fehlerfrei durch.

    Danke und glG
    Thunderbird