Migracja z VBA do OO macro

Dyskusje dotyczące tworzenia makropoleceń, pisania skryptów oraz programowania przy użyciu UNO
loi
Posty: 1
Rejestracja: pt lut 26, 2010 11:45 pm

Migracja z VBA do OO macro

Post autor: loi »

Witam.
W excelu miałem makro, który odczytuje dane z pliku access. W OO przerobiłem trochę, ale nadal nie działa

Kod: Zaznacz cały

Set Conn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
url$ = ConvertFromURL( katal )
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & url$ & "\fakturka.mdb;"
rs.Open "SELECT Dokument_Handlowy.Z_Dnia as data, Dokument_Handlowy.Nr_Dokumentu as HD, Kontrahent.NIP as Nip, Dokument_Handlowy.Forma_platnosci as forma, Dokument_Handlowy.Wartosc_Netto as net, Dokument_Handlowy.Wartosc_Vat as vat, Dokument_Handlowy.WN_1 as Net22, Dokument_Handlowy.WN_3 as Net7, " _
& " Dokument_Handlowy.WV_1 as Vat22, Dokument_Handlowy.Termin_platnosci as termin, Dokument_Handlowy.Wartosc_brutto as brutto, Dokument_Handlowy.WV_3 as Vat7, " _
& " Kontrahent.Nazwa as Nazwa, Kontrahent.Ulica_Lokal as Ulica, Kontrahent.Kod as Poczta, Kontrahent.Miejscowosc as Miasto " _
& " FROM Kontrahent INNER JOIN Dokument_Handlowy ON Kontrahent.ID = Dokument_Handlowy.ID_Kontrahenta " _
& " WHERE ((Dokument_Handlowy.Z_Dnia) >= #01/1/2010# And (Dokument_Handlowy.Z_Dnia) <= #01/31/2010#) " _
& " ORDER BY Dokument_Handlowy.Z_Dnia, Dokument_Handlowy.Nr_Dokumentu;", Conn

Do While Not rs.EOF
Cells(licznik, 2).Value = rs("Nip")
Ostatnia linia nie działa. Nie wiem jak można przerobić w OO.
OpenOffice 3.2, Windows XP
Jan_J
Posty: 4621
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Migracja z VBA do OO macro

Post autor: Jan_J »

Ostatnia linia to akurat proste.
dla liczb:

Kod: Zaznacz cały

thisComponent.currentController.getActiveSheet.getCellByPosition(kolumna, wiersz).setValue(wartość)
dla tekstów: setString zamiast setValue
Najistotniejsze różnice:
w Calcu nie ma domyślnego kontekstu komórek; w Excelu jest
numeracja postaci (kolumna, wiersz) zamiast (wiersz, kolumna); kolumny i wiersze są numerowane od zera a nie od jeden.

Natomiast nie wiem, czy Twój sposób komunikacji z Accessem via ODBC będzie się odbywał poprawnie w OpenOffice.

// Uhhh... nie lubię Basica...
JJ
LO (25.2|24.8) ∙ Python (3.12|3.10) ∙ Unicode 16 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
ODPOWIEDZ