Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1376to1380
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Laufzeitfehler Typenkonflikt (User Form)

Laufzeitfehler Typenkonflikt (User Form)
04.09.2014 16:41:24
Burak
Hallo,
ich lese schon seit einiger Zeit im Forum mit und konnte bisher die meisten VBA Probleme mit eurer Hilfe/den Beiträgen lösen.
Nun steh ich vor einem Problem, dass mich schon seit Stunden beschäftigt.. ich komme nicht mehr weiter und fand im Forum nichts was mir hilft.
Es geht um einen VBA Code, der eine User Form öffnen soll. Programmiert wurde es von meinem Vorgänger im Büro. Wenn ich den Code ausführe, erscheint Laufzeitfehler, Typenkonflikt und wenn ich auf Debuggen klicke erscheint:
Private Sub CommandButton2_Click()
menu.Hide
Company.Show
[Company] User Form Initialize:
Private Sub UserForm_Initialize()
'Dim dbpwd As String
Dim i As Integer
Me.StartUpPosition = 2
'Set window title
With Company
If MenuAdmin.admin = True Then
.Caption = .Caption & " - ADMIN MODE "
.CommandButton2.Visible = True
ElseIf MenuAdmin.admin = False Then
.Caption = .Caption & " - USER MODE "
End If
End With
'dbpwd = "2013"
TextBox1.Value = 1
Durationbox.Value = "Months"
'Connection with Acces DB
Set cn = New ADODB.Connection
With cn
.Provider = "Microsoft.ACE.OLEDB.12.0;"
.ConnectionString = "Data source=" & ThisWorkbook.Path & "\FDE_MV_DB.accdb" & " ; Jet  _
OLEDB:Database password = " & dbpwd & ";"
.Open
End With
'Ajout liste companies
SQLcommand = "Select Distinct Name From fde_mv " '######## need index
Set rs = cn.Execute(SQLcommand)
Do While Not rs.EOF
Companybox.AddItem UCase(rs!name)
rs.MoveNext
Loop
rs.Close
cn.Close
Companybox.List = ListSort(Companybox.List)
'Ajout list options FDE
With Optionsbox
.AddItem "Share Price"
.AddItem "Average FDE(sector within country)"
.AddItem "Average FDE (sector globally)"
.AddItem "Volatility"
End With
'Definition scrollbar defaut
ScrollBar1.min = 41420
ScrollBar1.max = CLng(DateAdd("d", -1, Date))
'Ajout list duration
With Durationbox
.AddItem "Days"
.AddItem "Weeks"
.AddItem "Months"
.AddItem "Years"
End With
'Update
'TextBox2.Value = CDate(ScrollBar1.min)
End Sub
Habt ihr eine Idee, wo der Hund begraben ist?

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler Typenkonflikt (User Form)
05.09.2014 09:42:37
fcs
Hallo Burak,
Typkonflikt bedeutte normalerweise, dass einer Variablen oder dem Parameter einer Methode/Funktion ein Wert zugewiesen wird, der nicht dem Typ der Variablen/des Parameters entspricht.
z.B. wenn einer nummerischen Variablen ein Textwert zugewiesen wird.
Nur durch lesen des Codes kann man kaum den Fehler feststellen.
Das einzige was mir aufgefallen ist:
Die Variable "dbpwd" wird noch verwendet, aber sie ist nicht mehr deklariert und es wird ihr kein Wert mehr zugewiesen.
Wenn die Datenbank-Verbindung kein Passwort mehr erfordert, dann solltest du die Zeile
'Dim dbpwd As String
wieder aktivieren, dann hat die Variable den Wert "" (Leerstring)
Für die weitere Fehlersuche solltest du dann beim Debuggen mit F8 den Code Schrittweise ausführen, damit du die Zeile findest, in der der Fehler auftritt und das Makro zur Zeile
Company.Show
zurückspringt. Danach kann man sich dann konkreter nach der Fehlerursache suchen. Dazu setzt du dann in der fehlerverursachenden Zeile einen Haltepunkt und Startest das Userform erneut.
Das Makro stoppt dann an der Zeile und du kannst die Inhalte von Variablen/Parametern etc. prüfen, die ggf. einen verhängnisvollen Inhalt haben oder in der Problemzeile zugewiesen bekommen.
Gruß
Franz

Anzeige
AW: Laufzeitfehler Typenkonflikt (User Form)
05.09.2014 11:24:46
Burak
Hi FCS.
Danke für die Hilfe, habe jetzt dn Fehler näher einkreisen können. Er steckt im SQL Code, genau genommen in der Zeile "Companybox.AddItem UCase(rs!name)" :
'Ajout liste companies
SQLcommand = "Select Distinct Name From fde_mv " '######## need index
Set rs = cn.Execute(SQLcommand)
Do While Not rs.EOF
Companybox.AddItem UCase(rs!name)
rs.MoveNext
Loop
rs.Close
cn.Close

AW: Laufzeitfehler Typenkonflikt (User Form)
05.09.2014 12:18:37
fcs
Hallo Burak,
entweder ist ein Syntaxfehler in rs!name
Oder rs!name gibt einen Fehlercode zurück, weil der SQL-String nicht korrekt ist.
Blende während du im Schrittmodus den Code abarbeitest im VBA-Fenster unter Ansicht das Lokal-Fenster ein.
Hier werden alle Variablen des Makros mit ihren aktuellen Werten angezeigt.
Prüfe mal für rs welche Informationen dort angezeigt werden.
Typischer Weise sollten dies Informationen zur Datenverbindung, Anzahl records etc. sein unter unter Items möglicherweise auch die Daten der einzelnen Datensätze.
Ich kann aber leider keine konkreten Korrekturhilfen geben, da ich mit der Verarbeitung der Daten von SQL-Abfragen unter VBA nicht vertrautbin.
Gruß
Franz
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige