Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Uruchomienie zewnętrznej aplikacji przy wykorzystaniu VBA ?
Gutek




Typ: neutral
Postów: 7
Zarejestrowany: Apr 2004
Uruchomienie zewnętrznej aplikacji przy wykorzystaniu VBA ?

Piszę prostą aplikację kosztorysującą i jak zwykle znowu zatrzymałem się w martwym punkcie. Wszystkie ceny umieściłem w bazie danych stworzonych w Accessie, chciałbym poprzez moją aplikację edytować tabele z cenami. Jakim poleceniem można uruchomić Accessa tak żeby została wczytana konkretna tabela z mojej bazy ?

24-04-2004 19:10
Pokaż profil Gutek  Wyślij email do Gutek   
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

A w czym to piszesz?
I czy potrzebny jest Ci Access?

Moim zdaniem potrzebujesz tylko połączenia z bazą, aplikację możesz ominąć


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

24-04-2004 23:34
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003
To samo pytanie zadałeś w dziale VB...

nie trzeba uruchamiać zewnetrznej aplikacji. Proponuję ADO, zobacz na stronę
http://www.vbexplorer.com/VBExplorer/wrox/sample1061.asp
"Universal Data Access Using ADO" - chyba dość wszechstronne zbiorcze omówienie zawarte na 1-dnej stronie internetowej. O czegoś trzeba zacząć, potem będziesz wiedział czego szukać dalej.
Pozdrawiam - Karolina


_____________________________________________
Karolina

25-04-2004 01:09
Pokaż profil karolinavb  Wyślij email do karolinavb   
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

A po co Ci kontrolki?

Tak jak już powiedziałem, możesz to zrobić bez nich, wykorzystując automatyzację OLE.

Zanim jednak skopiujesz poniższy kod, w oknie exploratora kodu w menu Narzędzia ustaw odwołanie do MS DAO 3.x, gdzie x jest wersją MS DAO w Twoim systemie.

'by odczytać
Sub CzytajTabeleAccessa()
Dim dbs As Database
Dim rst As Recordset 'tabela lub kwerenda
Dim zap As String

'tu możesz określić nazwę tablei lub
'zapytanie SQL, w przykładzie stosuję SQL
zap = "SELECT * FROM Slowka;"

On Error GoTo Err_CzytajTabeleAccessa

Set dbs = OpenDatabase(ThisWorkbook.Path & "\_WYLICZANIE_OBIEKTÓW.mdb" 'zmień śćieżkę!
Set rst = dbs.OpenRecordset(zap)
    With rst
        Do While Not .EOF
            MsgBox .Fields(1), vbInformation, .AbsolutePosition
            .MoveNext 'przejdz do kolejnego
        Loop
    End With

Exit_CzytajTabeleAccessa:
    On Error Resume Next
    rst.Close
    dbs.Close
    Set rst = Nothing
    Set dbs = Nothing
    Exit Sub

Err_CzytajTabeleAccessa:
    Resume Exit_CzytajTabeleAccessa
End Sub

'by zapisać zmiany w konkretnym rekordzie
Sub ZapiszZamianyWRekordzie()
Dim dbs As Database
Dim rst As Recordset 'tabela lub kwerenda
Dim zap As String

'tu możesz określić nazwę tablei lub
'zapytanie SQL, w przykładzie stosuję SQL
zap = "SELECT * FROM Slowka WHERE ((Slowka.SlowoAng) = 'Monday');"

On Error GoTo Err_ZapiszZamianyWRekordzie

Set dbs = OpenDatabase(ThisWorkbook.Path & "\_WYLICZANIE_OBIEKTÓW.mdb" 'zmień śćieżkę!
Set rst = dbs.OpenRecordset(zap)
    With rst
        .Edit 'eytuj rekord
        .Fields(1) = "Monday" 'zmień wartość pola
        .Update 'zapisz zmiany w rekordzie
    End With

Exit_ZapiszZamianyWRekordzie:
    On Error Resume Next
    rst.Close
    dbs.Close
    Set rst = Nothing
    Set dbs = Nothing
    Exit Sub

Err_ZapiszZamianyWRekordzie:
    Resume Exit_ZapiszZamianyWRekordzie
End Sub

Plecam moją książkę (link pod podpisem). Tam znajdziesz wiele odpowiedzi na większość pytań, mnóstwo ciekawych przykładów jak tworzyć własne kreatory, dodatki, wykorzystywać automatyzację OLE, itp. Sporo też o tym, jak pisać "dobry kod".


Pozdrawiam
Maciej Łoś
www.losmac.republika.pl
www.helion.pl/ksiazki/ofvba.htm


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

25-04-2004 13:43
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003
Wybór właściwej wersji DAO dla obsługi baz danych Microsoft Access

Jeżeli chodzi o wybranie i wykorzystanie właściwej wersji DAO dla obsługi baz danych Microsoft Access to na stronie :
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q197110 czytamy

Setting a Reference to DAO for different versions of Microsoft Access
If you have more than one version of Microsoft Access on your computer, you may need to reference different versions of the Microsoft DAO Object Library. The following list gives the version of the application and the version of DAO that you should use.

Version of Microsoft Access        Version(s) of DAO
----------------------------------------------------------------------
Microsoft Access 1.0              Microsoft DAO 2.5/3.0 Compatibility
Microsoft Access 1.1              Microsoft DAO 2.5/3.0 Compatibility
Microsoft Access 2.0              Microsoft DAO 2.5/.3.0 Compatibility
Microsoft Access 7.0              Microsoft DAO 3.0 Object Library
Microsoft Access 97                Microsoft DAO 3.5 Object Library
Microsoft Access 2000            Microsoft DAO 3.6 Object Library

dalej
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q233/0/02.ASP&NoWebContent=1
DAO version 3.6 is required for applications using DAO that need to read and write to Access 2000 .mdb database files.

Oraz uwagi o samym DAO
http://www.cse.bris.ac.uk/~ccmjs/access2000.htm#dao
DAO Code
Access includes version 4.0 of the Jet database engine and DAO 3.6 (data access objects) object library. Versions of DAO code prior to 3.6 are no longer supported in Access 2000. Examples in the help section DAO Object Library Compatibility demonstrate how to convert code constructs in Access databases created with earlier versions of the Jet database engine and DAO object libraries. (DAO provides the objects, such as tables, queries, relationships, and indexes, that handle data-management tasks (creating and updating table and query structure, security, accessing external data sources) in an Access database.

Dalej - "Limited Functionality of DAO"
http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q225/0/48.ASP&NoWebContent=1

DAO 3.51 cannot use the Microsoft Jet 4.0 database engine, but it does have full control over the Microsoft Jet 3.51 database engine.
DAO 3.6 provides DAO 3.51 level of control over Microsoft Jet 4.0, but does not expose any new functionality available in Microsoft Jet 4.0.

Chyba pisząc nowe aplikacje należy się sugerowac poniższym stwierdzeniem:
Microsoft suggest that you use the ADO (ActiveX Data Objects) methods of accessing data in your current database for all new applications and future version compatibility. See Migrating from DAO to ADO.

Proszę wybaczyć trochę przydługą wypowiedź, ale sama mam często wątpliwości co do wyboru właściwego narzędzia.


_____________________________________________
Karolina

25-04-2004 23:12
Pokaż profil karolinavb  Wyślij email do karolinavb   
Wszystkich odpowiedzi: 4 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1