VBA UserForm - Oracle Vyřešeno

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Adalbert
nováček
Příspěvky: 28
Registrován: únor 11
Pohlaví: Muž
Stav:
Offline

VBA UserForm - Oracle

Příspěvekod Adalbert » 06 bře 2015 12:19

Zdravim,

pokousim se propojit Excel UserForm s Oracle db, vytahnout z ni data a naplnit jimi Useform.

Koncim na chybe: -2147217900 ORA-00936:chybí výraz.

Tato chyba odkazuje na zmrsenej select. Nicmene select mi funguje bez problemu v sqlplus, developeru, dokonce i v makru v excelu kde se pripojuji bezne.
Ve formularich ho ale rozchodit nezvladam. Hadam ze se bude jednat o chybu v syntaxi, ale nemuzu ji najit.

V ukazce se snazim tahat data do TextBoxu, select vzdy bude davat jen jeden udaj. Nicmene zkousel jsem i do ListBoxu a nic. Zkousel jsem select bez promenne odkazujici na jiny TextBox, taky nic.

Kde udelali soudruzi z NDR chybu?

Win XP SP3
Oracle 10g
MS Excel 2003 + MS VBA 6.5

Za rady predem dekuji.




Kód: Vybrat vše

Private Sub btnNacti_Click()
    On Error GoTo UserForm_Initialize_Err
    Dim cnn As New ADODB.Connection
    Dim rst As New ADODB.Recordset
    cnn.Open "Provider=msdaora;Data Source=***;User Id=***;Password=***;"
   
    rst.Open "select [NAZEV] from TYP where CODE = '" & txtCode & "';", cnn, adOpenDynamic

             
   
    With Me.txtNazev
            .Enabled = True
            .RowSource = rst![NAZEV]
            .Enabled = False
    End With
UserForm_Initialize_Exit:
    On Error Resume Next
    rst.Close
    cnn.Close
    Set rst = Nothing
    Set cnn = Nothing
    Exit Sub
UserForm_Initialize_Err:
    MsgBox Err.Number & vbCrLf & Err.Description, vbCritical, "Error!"
    Resume UserForm_Initialize_Exit
End Sub

Reklama
Adalbert
nováček
Příspěvky: 28
Registrován: únor 11
Pohlaví: Muž
Stav:
Offline

Re: VBA UserForm - Oracle  Vyřešeno

Příspěvekod Adalbert » 10 bře 2015 15:30

Dopracoval jsem se k odstraneni problemu. Pro zajemce prikladam cast zmeneho kodu:

Kód: Vybrat vše


'      Odstraneny hranate zavarky a strednik na konci dotazu

   rst.Open "select NAZEV from TYP where CODE = '" & txtCode & "'", cnn, adOpenDynamic

'      RawSource nahrazen Value (opet bez zavorek),
'      Odebran kod povolujici a zakazujici interakci s textboxem, bylo to zbytecne
   
    With Me.txtNazev
            .Value = rst!NAZEV
    End With



Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti