vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest niedziela, 04 maja 2025 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

połączenie z bazą Oracle


otwartyotwarty rozpoczął: seteh postów: 4



napisał: jalamas
postów: 316


umieszczony:
26 maja 2009
03:12

  
http://www.carlprothman.net/Technology/ConnectionStrings/ODBCDSNLess/tabid/90/Default.aspx
ODBC -DSN less
napisał: seteh
postów: 10


umieszczony:
18 maja 2009
12:09

edytowany:
18 maja 2009
12:10

  
witam
poradziłem sobie

w pierwszej kolejności należało poprzez Start->Panel sterowania->Narzędzia administracyjne->Źródła danych (ODBC), utworzyć połączenie do bazy Oracle
potem poprawiłem delikatnie connection string i działa

Rychu: nazwe bazy, userid i haslo oczywiscie podmieniam, co do CursorLocation to chyba masz racje ;)

poniżej poprawny kod dla potomnych:
Sub Polaczenie()

'Defining variables
Dim cnOra As ADODB.Connection
Dim rsOra As ADODB.Recordset

Set cnOra = New ADODB.Connection
Set rsOra = New ADODB.Recordset

'Making an ODBC connection according to ADO
cnOra.Open "DSN=DataSourceName;UID=UserName;PWD=Password;"
rsOra.CursorLocation = adUseClient

'Running a query
rsOra.Open "SELECT WSKAZANIE.STAN FROM OKI_MAIN.WSKAZANIE WSKAZANIE WHERE (WSKAZANIE.STAN=325)", cnOra, adOpenForwardOnly

'Passing on data from the recordset to a variable or cell.
'Notice that the column name or alias is used to address
'data in the recordset.
While Not rsOra.EOF
Worksheets("Arkusz1").Range("A1") = rsOra![STAN]
rsOra.MoveNext
Wend


'Forgetting to close your connection will sometimes result in
'Dr.Watsons
rsOra.Close
cnOra.Close
Set rsOra = Nothing

End Sub



pozdrawiam
napisał: Rycho
postów: 291


umieszczony:
16 maja 2009
16:47

  
Hej,
nie znam się na oracle, ale...
przy otwieraniu połączenia do bazy musisz podać nazwę serwera i użytkownika oraz hasło, czyli w linii
Cytat:
cnOra.Open "ODBC;DRIVER={Microsoft ODBC for Oracle};SERVER=ServerName;UID=UserName;PWD=Password;"

teksty 'ServerName', 'UserName' i 'Password' zastąp konkretnymi nazwami.

Cytat:
rsOra.CursorLocation = adUseServer

Tu nie jestem pewien ale ze względu na późniejsze zapytanie SQL to kursor powinien być raczej po stronie użytkownika a nie serwera czyli nie adUseServer a adUseClient.

W swoim komputerze powinieneś mieć plik pomocy do ADO np. ADO210.CHM
Miłej lektury i powodzenia.
Rycho
napisał: seteh
postów: 10


umieszczony:
15 maja 2009
12:47

edytowany:
15 maja 2009
12:54

  
witam

jak w temacie, chodzi o połączenie do bazy Oracle i pobranie do Excela określonych rekordów
znalazłem w sieci (http://www.marcel-jan.nl/oracle/tips/oracle_tip_vba.html) gotowe rozwiązanie ale niestety mam problemy
wyskakuje mi błąd:
Cytat:
Run-time error '-2147467259 (80004005)':

[Microsoft][Menedżer sterowników ODBC] Nie można odnaleźć nazwy
źródła danych, a nie ma podanego sterownika domyślnego


zapewne trzeba zdefiniować jakoś to "źródło danych" ale nie wiem w jaki sposób
dodam, że baza umieszczona jest na serwerze, do którego mam dostęp poprzez LAN
help !

mój kod wygląda następująco:

Sub Polaczenie()

'Defining variables
Dim cnOra As ADODB.Connection
Dim rsOra As ADODB.Recordset

Set cnOra = New ADODB.Connection
Set rsOra = New ADODB.Recordset

'Making an ODBC connection according to ADO
cnOra.Open "ODBC;DRIVER={Microsoft ODBC for Oracle};SERVER=ServerName;UID=UserName;PWD=Password;"
rsOra.CursorLocation = adUseServer

'Running a query
rsOra.Open "SELECT WSKAZANIE.STAN FROM OKI_MAIN.WSKAZANIE WSKAZANIE WHERE (WSKAZANIE.STAN=325)", cnOra, adOpenForwardOnly

'Passing on data from the recordset to a variable or cell.
'Notice that the column name or alias is used to address
'data in the recordset.
While Not rsOra.EOF
Worksheets("Arkusz1").Range("A1") = rsOra![WSKAZANIE.STAN]
rsOra.MoveNext
Wend


'Forgetting to close your connection will sometimes result in
'Dr.Watsons
rsOra.Close
cnOra.Close
Set rsOra = Nothing

End Sub



<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z