/ / Jak mogę rozwiązać ten komunikat o błędzie "Błąd kompilacji: Nie zdefiniowano typu zdefiniowanego przez użytkownika" w Microsoft VBA - sql-server, excel, vba, stored-procedures, adodb

Jak mogę rozwiązać ten komunikat o błędzie "Błąd kompilacji: Zdefiniowany przez użytkownika typ nie zdefiniowany" w Microsoft VBA - sql-server, excel, vba, stored-procedures, adodb

Jestem nowy w Microsoft-VBA i próbuję to zrobićExcel uruchom procedurę składowaną na serwerze MSSQL i dodaj rekordy do tabeli utworzonej w tym celu. Ale za każdym razem, gdy próbuję uruchomić to, aby przetestować mój kod, otrzymuję ten komunikat o błędzie. Sprawdziłem i wdrożyłem niektóre rozwiązania sugerowane na tym forum, ale nie byłem w stanie sprawić, by działało. Na przykład, przeszedłem, aby aktywować bibliotekę "Microsoft ActiveX Data Objects Recordset 2.8 Library" w Tools> References, ale nadal otrzymuję ten sam błąd. Będzie miło, jeśli ktokolwiek będzie mógł przejrzeć mój kod i powiedzieć mi, co robię źle.

Ten obraz zawiera kod i komunikat o błędzie


Sub My_Test_Report()

Dim objConn As New ADODB.Connection
Dim objCmd As New ADODB.Command
Dim objParm1 As New ADODB.Parameter
Dim objRs As New ADODB.Recordset

objCmd.CommandText = "[Report Queries].[dbo].[My_Test_Report]"
objCmd.CommandType = adCmdStoredProc
Set objConn = GetNewConnection
objCmd.ActiveConnection = objConn
objCmd.Parameters.Refresh
objCmd(1) = True
Set objRs = objCmd.Execute

End Sub

Odpowiedzi:

0 dla odpowiedzi № 1

Zgadzam się z ashleedawg3, masz "Paremeter" vs "Parameter". Kiedy próbuję skompilować, pojawia się ten sam błąd z zaznaczeniem tej konkretnej linii:

wprowadź opis obrazu tutaj

Kluczem tutaj jest to, że kompilator widzi typ, o którym NIE DOTYCZY, więc otrzymujesz "typ zdefiniowany przez użytkownika, nie zdefiniowany"

Spróbuj dostosować pisownię i zobacz, czy to naprawi ...


0 dla odpowiedzi nr 2

Myślę, że brakuje ci drugiej biblioteki PrzyboryReferencje i dodaj oba:

☑ Biblioteka Microsoft ActiveX Data Objects 6.1

☑ Biblioteka Microsoft ActiveX Data Objects Recordset 6.0

(Odznacz wszystkie niższe wersje tych samych bibliotek).

Zauważ, że jeśli masz wybór różnych wersji tej samej biblioteki, najlepiej jest wybrać najwyższy dostępny numer wersji.