Marek Sikora
Użytkownik <se@poczta.onet.plw wiadomości do grup dyskusyjnych
napisał:5ef8.00002d67.3c605@newsgate.onet.pl...
Witam
Mam mały problem. W Accessie 2000 stworzylem Tabele "osoby" z trzema
rekordami:
id (autonumer), nazwisko(text), imie(text) oraz formularz za pomoca
ktorego chce
dodawac te dwie dane(imie i nazwisko) do bazy. Na formularzu jest przycisk
po
kliknięciu na ktorym dopiero dane maja znalezc sie w bazie. Dla przycisku
napisalem w VBA taka instrukcje:
Private Sub Polecenie4_Click()
Dim tabela As recordset
Dim baza As database
Set baza = CurrentDb()
Set tabela = baza.OpenRecordset("osoby")
tabela.AddNew
tabela![Nazwisko] = Tekst0
tabela![Imie] = Tekst2
tabela.Update
End Sub
Gdy je uruchamiam wyskakuje komunikat ze user defined type nod defined
który wskazuje na fragment Dim baza As database
Jak to rozwiazac
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
W edytorze VB wejdź w Narzędzia/Odwołania - pokaże się okno z listą
dostępnych odwołań. Znajdź i zaznacz pozycję:
"Microsoft DAO 3.6 Object Library"
lub
"Microsoft DAO 3.51 Object Library"
Marek Sikora
Użytkownik <se@poczta.onet.plw wiadomości do grup dyskusyjnych
napisał:35c1.000009c2.3c616@newsgate.onet.pl...
| Musisz mieć ustawione referencje (odwołania) na Microsoft DAO
jak to ustawic, moze ktos mi napisze o tym na priv lub poda adres stron
gdzie to jest napisane
mpijo@nonet.pl
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Witam
Czy da się za pomocą VBA dopisywać dane wprowadzane do Excela dopisywać
do "bazy" *.mdb (accessa)?? (komputer na którym mają być dopisywane dane
nie
ma zainstalowanego accessa :( - ze wzgledu na koszty)
Mozliwe, że tak.
Niestety nie mam zainstalowanego czystego Excela, więc trudno powiedzieć.
Warunek jest jeden - muszą być zainstalowane biblioteki ADO lub DAO.
[Sprawdź w Referencjach:
Microsoft DAO x.x Library
Microsoft ActiveX Data Object ]
Wtedy można dodawać/usudać/modyfikować dane z tabel w bazie Accesowej.
Marek Sikora
Pozdrawiam
Tomek
| Witam
| Czy da się za pomocą VBA dopisywać dane wprowadzane do Excela dopisywać
| do "bazy" *.mdb (accessa)?? (komputer na którym mają być dopisywane dane
nie
| ma zainstalowanego accessa :( - ze wzgledu na koszty)
Mozliwe, że tak.
Niestety nie mam zainstalowanego czystego Excela, więc trudno powiedzieć.
Warunek jest jeden - muszą być zainstalowane biblioteki ADO lub DAO.
[Sprawdź w Referencjach:
Microsoft DAO x.x Library
Microsoft ActiveX Data Object ]
Wtedy można dodawać/usudać/modyfikować dane z tabel w bazie Accesowej.
Marek Sikora
co to może być?
Piotr
uzywam Accessa 97
w Accessie z Office XP narzedzia-odwolania wlacz
'Microsoft DAO 5.3 object libray
sub vv
Dim db As Database
Dim recDane As DAO.Recordset
'
Set db = CurrentDb
Set recDane = db.OpenRecordset("t")
ile = recDane.RecordCount
recDane.Close
Set db = Nothing
End Sub
pozdrawiam
Pozdrawiam,
Marcin Ziemian napisał(a):
"Krzysztof Naworyta" <k.nawor@datacomp.com.plnapisał w dniu Thu,
31 Aug 2006 22:56:06 +0200:
(...)
| Skoro działasz na "kwerendach" mogę zasugerować jedynie:
| - przeleć się w pętli po wszystkich dzieciach-oknach access'a
| - sprawdż, czy które nie nazywa się "kwerenda: ...." (uwaga na inne niż
| polskie instalacje!)
| - jeśli tak, to go zabij !
| (wszystko API !)
| Być może jest prostszy sposób
| (bo każda "kwerenda" (w Twoim rozumieniu!) jest jakims formularzem -
| niestety/stety nie wchodzącym do kolekcji Forms ...)
| Ale nic mi nie przychodzi na myśl ...
Hmm... A może oprzeć się o kolekcję QueryDefs?
Np. tak:
Public Function CloseAllQuerys() As Boolean
Dim qry As QueryDef
On Error Resume Next
For Each qry In CurrentDb.QueryDefs
DoCmd.Close acQuery, qry.Name, acSaveNo
Next qry
CloseAllQuerys = True
End Function
Po co od razu uciekać się do API?
;)
Pozdro
--
M.Z.
---
avast! antywirus: Wychodzace wiadomosc czysta. | Baza sygnatur wirusow (VPS): 0635-3, 2006-08-31
Data skanowania: 06-08-31 23:45:59
Dzięki zadziałało, ale dodam jeszcze, że w referencjach należy
mieć włączone Microsoft DAO bo inaczej
lipa.
poście w tę i wewtę.
to czytają. Nie każ im
Inni użytkownicy Usenetu też
skakać po całym
Użytkownik wrote:
| Dodaj referencję do DAO i wyrzuć do ADO (jak nie używasz w innym
| miejscu): dowolny moduł/Tools/References.
| Pozdrawiam
| Grzegorz
a mozna jak dla przyglupiego przedszkolaka?
W Visual Basic wejdź w Tools a nastapnie References na liscie odszukaj
Microsoft Dao 3.6 Object Library i zaznacz(postaw "ptaszka" obok)
nastepnie pozatwierdzaj.
pozdrawiam rafał :)
W Visual Basic wejdź w Tools a nastapnie References na liscie odszukaj
Microsoft Dao 3.6 Object Library i zaznacz(postaw "ptaszka" obok)
nastepnie pozatwierdzaj.
pozdrawiam rafał :)
dziekuje ale dalej linijka
Set rs = Me.RecordsetClone
wywala program z komunikatem type mismatch
Użytkownik wrote:
| W Visual Basic wejdź w Tools a nastapnie References na liscie
| odszukaj Microsoft Dao 3.6 Object Library i zaznacz(postaw "ptaszka"
| obok) nastepnie pozatwierdzaj.
| pozdrawiam rafał :)
| dziekuje ale dalej linijka
| Â Set rs = Me.RecordsetClone
| wywala program z komunikatem type mismatch
a masz zadeklarowane :
Dim rs As DAO.Recordset
?
pozdrawiam rafal
Rafał ma rację w Accessie należy zawsze wpisywac prefix DAO dla obiektu
Recordset i np Field, w przeciwnym pzrypadku defaultowo będzie tworzony obiekt
ADO (odrotnie niż w VB6)
Mam pytanie, czemu dim db as Database
zwraca mi błąd :
User-defined type not defined
???
no i sam sobie odpowiedzialem :)
tools -references -Microsoft DAO 3.6 Object Library
i dziala
| tools -references -Microsoft DAO 3.6 Object Library
| i dziala
a czasami mimo tego ze ta referencja *jest zaznaczona* i tak nie
dziala... wtedy pomagaja metody z mojego poprzedniego posta. pozdr,m.
Musi działać. To kwestia kolejności na liście references - najpierw "DAO
3.6", a niżej dopiero "OLE Automation".
Pozdrawiam,
Krzysiek
Juzer Krzysztof Wiśniewski <ktu@poczta.onet.plnapisał
||| tools -references -Microsoft DAO 3.6 Object Library
||| i dziala
|| a czasami mimo tego ze ta referencja *jest zaznaczona* i tak nie
|| dziala... wtedy pomagaja metody z mojego poprzedniego posta. pozdr,m.
| Musi działać. To kwestia kolejności na liście references - najpierw "DAO
| 3.6", a niżej dopiero "OLE Automation".
Co ma OLE do DAO ???
Obiekty gryzą się między ADO i DAO (np. obiekt Recordset)
Poza tym ja nie uważam, aby kolejność na liście referencji była tym na
czym należałoby polegać !
(ciach)
To dlaczego, jeśli przesunę "DAO 3.6" powyżej "OLE Automation" na liście
referencji, to wszystko działa jak należy, a jeśli z powrotem zmienię
kolejność, to już nie?
Pozdrawiam,
Krzysiek
----- Original Message -----
From: "Adam Liberacki" <ad@hoth.amu.edu.pl
Sent: Sunday, September 16, 2001 2:21 AM
Subject: Re: Recordset
| Dlaczego gdy piszę:
| Dim rs as Recordset
| nie mam słowa RecordSet wyróżnionego jak inne (np. Integer, String
itp.).
| Typ Recordset wybieram z listy rozwijanej, a mimo to nie zachowuje się
tak
| jak inne. Czy to może być powód, dla którego nie działają mi żadne
operacje
| na obiektach typu Recordset, co doprowadza mnie powoli do szału ????
napisz jakie masz odwolania
Adam Liberacki
W oknie 'Referencje' mam zaznaczone następujące elementy (wg kolejności):
Visual Basic For Applications
Microsoft Access 9.0 Object Library
Microsoft DAO 3.6 Object Library
OLE Automation
Microsoft ActiveX Data Objects 2.1 Library
Microsoft Calendar 9.0
MISSING: Tutor ActiveX Control Module
Disk-Management Snap-In Object Library
ctv OLE Control Module
Microsoft Windows Common Controls 6.0
Microsoft Outlook 9.0 Object Library
Microsoft Excel 9.0 Object Library
Microsoft Office 9.0 Object Library
Microsoft SQL Parser Object Library 1.0
Microsoft Visual Basic For Applications Extensibility 5.3
acwzmain
Microsoft ActiveX Data Objects Recordset 2.5 Library
Wojciech
Cezary Wawrentowicz
----- Original Message -----
From: "Aseta" <as@aseta.wroc.pl
To: <pl-comp-bazy-danych-msacc@newsgate.pl
Sent: Friday, June 01, 2001 4:39 AM
Subject: Re: runtime
Spróbuj podać znak równości [=data()] lub zaimportuj obiekty do nowej bazy.
Powinno pomóc jeżeli nie. Pis zna priva
Włodek
wlo@aseta.wroc.pl
===========================================
Aseta - tworzenie Baz Danych dla Przedsiębiorców
Aseta - Internetowa Kancelaria Prawnicza
Aseta - Wycena nieruchomości
Aseta - Lombard - pożyczki pod zastaw
Mam problem, baza frontonu, jezeli chodzi pod Accessem 2000 jet OK,
natomiast jezeli uruchomiona pod Runtimem Accessa wywala w polach gdzie
uzyto data(). Prowdopodobnie problem lezy gdzies w odwolaniach, co zrobic?
__________________
Tomasz
Jednak można powrócić do techologii DAO:
W oknie modułu:
Tools -References
i wybrać Microsoft DAO 3.6 Object Library (lub wyższa)
Na dłuższą perspektywę warto zainwestować w naukę ADO, ponieważ DAO jest
technologią, z której M$ się wycofuje.
Mam MSAccess2000 (i Windows2000). Nowa baza danych. Nowy modul. Tresc
(General/Declarationa):
Option Compare Database
Public ImpDir As String
Public db As Database
i tu pojawia sie blad: "User-defined type not defined" (dotyczy "db
as Database"). Czyli nie zna typu obiektu Database. Nie zna rowniez
typu Workspace i pewnie innych. Nawet w czasie pisania kodu, po
wcisnieciu spacji po "As", podpowiadaja sie rozne rzeczy tylko nie
Database ani Workspace.
Odinstalowalem caly Office2000 i zainstalowalem na nowo - to samo.
Czy ktos mi moze pomoc - bede wdzieczny, bo przestaly mi dzialac moje
wszystkie moduly, nic nie moge skompilowac.
Beve
1/ tworzę nową bazę (plik db1.mdb)
2/ tworzę nowa tabelę "Tabela1"
coś tam do niej wpisuję
3/ Tworzę nowy Moduł a w nim:
Option Compare Database
Sub test()
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("Tabela1")
rs.MoveLast
MsgBox (rs.RecordCount)
End Sub
4/ uruchamiam procedurę
i lipa:
wywala na "db as database"
[compile error: "User-definied type not defined"]
no dobra
5/ dołaczam referencje w Tools-References
"Microsoft DAO 3.51 ObjectLibrary"
odpalam procedure
i lipa:
[run-time error 13 "Type mismatch"]
o co chodzi,
dlaczego zadeklarowany rs jest niezgodny z Tabela1
może ktoś poradzi (na pewno czegoś nie wiem)
pozdrawiam
TAD
Jaki jest w Access 2000 odpowiednik typu danych Database, który występował
w
Access 7.0 ?
W Access 2000 należy zdecydować się z jakiego typu dostepu do danych
korzystasz: DAO 3.60 czy ADO. Aby właczyć DAO (czyli to o co Ci chodzi)
musisz otworzyć edytor Visual Basic (np. nowy moduł) oraz z menu Narzedzia
wybrać Referencje lub Odwołania i zaznaczyć na liscie Microsoft DAO 3.60
Object Library. Od tej chwili masz Database, Recordset, etc.
| W Access 2000 należy zdecydować się z jakiego typu dostepu do danych
| korzystasz: DAO 3.60 czy ADO. Aby właczyć DAO (czyli to o co Ci chodzi)
| musisz otworzyć edytor Visual Basic (np. nowy moduł) oraz z menu Narzedzia
| wybrać Referencje lub Odwołania i zaznaczyć na liscie Microsoft DAO 3.60
| Object Library. Od tej chwili masz Database, Recordset, etc.
Dzięki - pomogło, ale teraz kompilator przyczepił mi się do instrukcji :
Set oplaty = Me.RecordsetClone ' Baza na podstawie formatki
którą z powodzeniem używałam w 7.0.
Czy jeszcze coś należy włączyć w referencjach ?
Pozdrowienia
Basia
Public Sub LPsztuczka1()
' ToolsReferences: "Microsoft DAO x.x Object Library - twoja wersja
biblioteki DAO
Dim db As DAO.Database 'deklaracja poprawna przy referencji do biblioteki
DAO
Dim rst As DAO.Recordset 'deklaracja poprawna przy referencji do biblioteki
DAO
Set db = CurrentDb
SQLstring = "SELECT * FROM TwojaKwerenda"
Set rst = db.OpenRecordset(SQLstring) ', dbOpenDynaset, dbConsistent,
dbPessimistic)
With rst
.MoveFirst
numer = 0
Do Until .EOF
'zakladam ze kolumna Lp jest pierwsza kilumna tabeli
numer = numer + 1
.Edit
.Fields(0) = Str$(numer) 'kolumna Lp ma typ Text _
'- mozesz ja nazywac wtedy _
'np. tak [FV01,FV02,...], [1,2,3,...] _
'roznie, jak tylko wymyslisz.
.Update
.MoveNext
Loop
End With
Set rst = nothing 'zabicie zmiennej obiektowej
Set db = nothing 'zabicie zmiennej obiektowej
End Sub
--
============= P o l N E W S ==============
archiwum i przeszukiwanie newsów
http://www.polnews.pl
To szybki kurs.
Pozdrawiam.
Chetnie skorzystam tylko gdzie mam to wstawic. Moze i pytanie lamerskie
ale
kazdy ma jakies poczatki
novaczek
2) new in Acc2k - ADO
dim rs as adodb.recordset
set rs = new adodb.recordset
rs.open <nazwa, currentproject.connection, adopenkeyset, adlockpessimistic,
adcmdText*
gdzie:
<nazwa to:
- nazwa_tabeli - wtedy ostatni parametr musi być adcmdtable lub
adcmdtabledirect
- kwerenda - ~ parametr adcmdtable
- ciąg sikłelowy :O) - ~ parametr accmdtext
- nieokreślony (tu defaultowy) - ~ accmdUnknown
patrz helpa
i potem jedziesz z pętlą jak wg. PL
sorry jeśli masz już odpowiedź ale cóś mam problemy z dostaniem się na
grupę.
Set MySet = MyDb.OpenRecordset("ExpArray", DB_OPEN_DYNASET)
wywalając błąd: Type mismatch
I tu już jestem w kropce.
no pewnie - w kropce powiadasz ...
Może tak zmodyfikuj pkt. 5 algorytmu podanego przez Piotra ...
... próbowałem ale nie pojawia się żadna lista typów - pojawia się tylko opis
formatu wywołania OpenRecordset
a potem, rzeczywiście, DB_OPEN_DYNASET na dbOpenDynaset
(ale to już później, chyba że dodatkowo masz w referencjach bibliotekę
zgodności wersji VB)
... próbowałem:
DB_OPEN_DYNASET
dbOpenDynaset
dbopensnapshot
i ciągle ten sam błąd.
Mam Access 2000
W referencjach wybrane:
Visual Basic For Applications
Microsoft Access 9.0 Object library
OLE automation
Microsoft ActiveX Data Objects 2.1 Library
Microsoft DAO 3.6 Object library
I nie wiem o co chodzi?
Donat
PS
Co to jest: biblioteka zgodności wersji VB?
Mam Access 2000
W referencjach wybrane:
Visual Basic For Applications
Microsoft Access 9.0 Object library
OLE automation
Microsoft ActiveX Data Objects 2.1 Library
Microsoft DAO 3.6 Object library
Może ma być inna biblioteka?
Donat
Set MySet = MyDb.OpenRecordset("ExpArray", DB_OPEN_DYNASET)
wywalając błąd: Type mismatch
no pewnie - w kropce powiadasz ...
Może tak zmodyfikuj pkt. 5 algorytmu podanego przez Piotra ...
... próbowałem ale nie pojawia się żadna lista typów - pojawia się tylko
opis formatu wywołania OpenRecordset
poguglaj za "Type mismatch"
(dajemy Ci wędkę zamiast ryby, wykorzystaj to !)
a to już inny błąd, który być może zaraz potem sie pojawi ...
a potem, rzeczywiście, DB_OPEN_DYNASET na dbOpenDynaset
(ale to już później, chyba że dodatkowo masz w referencjach bibliotekę
zgodności wersji VB)
... próbowałem:
DB_OPEN_DYNASET
dbOpenDynaset
dbopensnapshot
i ciągle ten sam błąd.
Mam Access 2000
W referencjach wybrane:
Visual Basic For Applications
Microsoft Access 9.0 Object library
OLE automation
Microsoft ActiveX Data Objects 2.1 Library
Microsoft DAO 3.6 Object library
I nie wiem o co chodzi?
guglaj ...
PS
Co to jest: biblioteka zgodności wersji VB?
Microsoft DAO 2.5/3.5 Compatibility Library
(ale generalnie nie używam. Te kilka "starych" stałych lepiej podmienić na
nowe i z głowy ...)
KN
Janusz
On 18 Cze, 11:42, AP <A@interia.pl wrote:
  Dim fd As DAO.Field <<<<<<< PO KLIKNIĂCIU POLA DALE WYSKAKUJE BÂŁÂĄD
---
Ustaw referencje do DAO
Menu z VBA:  Tools--References  ("Microsoft DAO 3.6 Object
Library")
---
AP
Użytkownik "Piotr Lipski" <x@nie.spamuj.interia.bo.pl.w.ryj napisał w
wiadomości Rzekł KTMajew:
Ja bym zaczął od wgrania wszystkich poprawek do Jet-a oraz
przyzwyczaiłbym
się do jawnego deklarowania obiektów dao/ado, o tak:
Dim rst As DAO.Recordset
Dzieki za informacje, ale coś mi nie działa. Pojawił się kolejny błąd:
Compiled error
User-defined type not define
Czy gdzies trzeba delkarować użycie DAO???
Edytor Visual Basic -- Menu -- Tools -- References --Microsoft DAO 3.6
Object Library
Wstaw nas listę przed OLE Automation.
Pozdrawiam,
Krzysiek
Standardowo wystarczą Ci:
- Visual Basic For Applications (zawsze podpięty)
- Microsoft Access (tu nr wersji) Object Library (jw)
- Microsoft DAO 3.6 Object Library
lub:
- Microsoft ActiveX Data Objects (tu nr wersji) Library
albo obydwie, jeśli korzystasz z DAO i ADO równocześnie.
Wszystko to mam i nietety dalej procedura wywala się na linijce:
.....
DoCmd.RunSQL "DELETE FROM [OCENA POTENCJAŁU] WHERE [KodArk] = " & _
Mid(Me.ID_Pion, lngSlash1 + 1, lngSlash2 - lngSlash1 - 1)
.....
A komunikat niezmienny:
Run time err "5":
| Invalid procedure call or argument
??????? :o(((
Stefan
On 19 lip 2002, you wrote in pl.comp.bazy-danych.msaccess:
Wlasnie zainstalowalem sobie accessa 2000 na win 98. Odpalam
projekt, wciskam jakis klawisz na formularzu, a program wchodzi do
edytora vb, ustawia sie na linijce gdzie jest deklarowana zmienna
Recordset i wypisuje can't find project or library, compile error.
Tak jakby nie znal tego typu. Pomocy, musze skonczyc projekt
zaliczeniowy do wrzesnia
referencje
EDYTOR VBA toolsreferences (acc ang)
lub narzedziareferencje (acc pol)
nie wiem czy kozystasz z dao czy z ado ? jesli z dao
to musisz zaznaczyc jeszcze microsoft dao......
jesli z ado to standardowo jest juz zaznaczono moze zle zadeklarowales?
trzeba bylo zacytowac ta linijke na ktorej wyskakuje err
Taki kod jest w przypadku przycisku ktory ma zamykac formularz:
Private Sub Polecenie55_Click()
On Error GoTo Err_Polecenie55_Click
DoCmd.GoToRecord , , acNewRec
Exit_Polecenie55_Click:
Exit Sub
Err_Polecenie55_Click:
MsgBox Err.Description
Resume Exit_Polecenie55_Click
End Sub
Private Sub Polecenie56_Click()
On Error GoTo Err_Polecenie56_Click
DoCmd.Close
Exit_Polecenie56_Click:
Exit Sub
Err_Polecenie56_Click:
MsgBox Err.Description
Resume Exit_Polecenie56_Click
End Sub
Pozdrawiam
Czarek
Witam,
Primo po pierwsze, wycinaj sygnaturkę i fragmenty tekstów, do których się
nie odnosisz.
Primo po drugie, przekleiłeś kod od dwóch przycisków (ale nic to, damy radę)
Secundo po pierwsze dublujesz tymi kodami przyciski, w które standardowo
wyposażony jest każdy formularz ("x" i "*"). Czy aby na pewno to Ci jest
potrzebne? Odpowiedź pewnie brzmi "tak, bo można wsadzić tam fajniejszy
obrazek" i to właśnie z tymi obrazkami może być problem. Sprawdź czy masz
zaznaczone referencje do DAO? W tym widoku co przeklejałeś kod, menu
"Tools/References" i poszukaj "Microsoft DAO 3.6 Tools Library" (zamiast 3.6
mogą byćinne cyferki)
Pozdrawiam,
Kiełpiś
Zbych wrote at Dienstag, 9. November 2004 16:08:
| Set tbl = New DAO.TableDef
| ...
Dodaj referencje do "Microsoft Data Access Objects x.y"
Ciao, Smyk
Stosowna referencja byla dodana - Microsoft DAO 3.6, wiec chyba nie w
tym problem.
Zbych
Dim rst As DAO.Recordset
Dim intI As Integer
Dim fld As Field
Set rst = Me.Recordset
For Each fld In rst.Fields <--- Tu sie zatrzymuje z błędem: "Type mismatch"
' Print field names.
Debug.Print fld.Name
Next
procedurka jest wykonywana po kliknięciu przycisku na otwartym formularzu
operyjącym na tabeli z około 15 polami.
Poczatkowo już w pierwszej lini kodu wywalał mi błąd, ale w tools/referens
zachaczyłem "Microsoft DAO 3.6 Object library"
Ta procedurka to tylko ćwiczenie z książki, ale za diabła nie wiem dlaczego
wywala mi ten błąd?
Za wszelkie podpowiedzi z góry dziękuję.
Dim rst As DAO.Recordset
Dim intI As Integer
Dim fld As Field
Set rst = Me.Recordset
For Each fld In rst.Fields <--- Tu sie zatrzymuje z błędem: "Type mismatch"
' Print field names.
Debug.Print fld.Name
Next
procedurka jest wykonywana po kliknięciu przycisku na otwartym formularzu
operyjącym na tabeli z około 15 polami.
Poczatkowo już w pierwszej lini kodu wywalał mi błąd, ale w tools/referens
zachaczyłem "Microsoft DAO 3.6 Object library"
Ta procedurka to tylko ćwiczenie z książki, ale za diabła nie wiem dlaczego
wywala mi ten błąd?
Za wszelkie podpowiedzi z góry dziękuję.
(F1) recordset.open,
connection
Używam:
Microsoft ActiveX Data Objects 2.1 Library
Microsoft DAO 3.6 Objects Library
OLE Automation
Microsoft Access 9.0 Objects Library
Visual Basic For Applications
Pytanie: Czy można używać jednocześnie ODBC i ADO oraz przy użyciu Recordset
otwierać tabele lokalne?
Czy są jakieś przeciwskazania łączenia różnych metod?
Czy błąd: Run-time error '13':
Type mismatch
jest winą używanych bibliotek?
Radek
Użytkownik "Michał Kożusznik" <ma@prezentacje.no.spam.netnapisał w
wiadomości
| MISSING: Microsoft DAO 2.5/3.5 Compatibility Library.
| Jak odnaleźć tę bibilotekę (w ścieżce podanej w referencjach jest inna
| bibiloteka).
A wyłącz ją w cholerę (w referencjach) i podłącz taką wersję DAO jaką masz
--
Michał Kożusznik
http://mops.uci.agh.edu.pl/~mxm_crd
e-mail: ma@prezentacje.no.spam.net
Regards
Adam Wieczorek
Wystarczy w projekcie modulu pstryknąć e references na " Microsoft DAO 3.6
Object Library"
i będzie OK (i ew. wyłączyć ADO)
Grzegorz
<le_ar@poczta.onet.plwrote in message
Witam :-)
Mam taki problem: VB Accessa 2000 pluje sie przy banalnych instrukcjach
np "Dim baza As Database", "Set rst = CurrentDb.Openrecordset(-polecenie
SQl-)"
Ten sam kod napisany w A97 dziala pod A2000 po przekonwertowaniu calej
bazy.
Czy ktos wie o co chodzi ?
pozdrawiam
Przemo
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Mam funkcje ktora w przypadku jak zalinkowane tablice pochodza z pliku ktory
nie istnieje pozwala wskazac nowe polozenie pliku mdb z tymi samymi
tablicami. Wszystko dziala swietnie jak plik mdb w ktorym znajduja sie dane
tablice nie ma zalozonego hasla. Po tym jak nadalem mu haslo, nie mam
zielonego pojecia gdzie je wpisac w funkcji odswiezajacej linki tak zeby
dostac sie do tego pliku. Jak bym nie zapisal hasla i gdzie bym je nie
wstawil zawsze pojawia sie blad.
Linia w na ktorej funkcja mi sie wywala to:
Set DBLink=DBEngine(0).OpenDatabase(strPlik)
' W takim przypadku otrzymuje komunikat "Nieprawidlowe haslo" - i to jest
oczywiste bo nie podalem hasla
Probowalem podawac haslo w roznych miejscach (i zapisujac je w rozny
sposob), jednak z kazdym razem pojawil sie ten sam komunikat bledu , badz
komunikat "błąd konwersji typu danych."
Z gory dzieki za wszelkie konstruktywne uwagi.
Piotrek ^v^
PS. Baza jest na Access 2000 oraz
- Microsoft Access 9.0 Object Library
- Microsoft DAO 3.6 Object Library
wybacz, ale kompletnie nie wiem jak to zrobic, bede wdzieczny za pomoc
Sprawdź referencje. Moduły=Otwórz dowolny=Narzędzia=Referencje
i zaznacz pozycje "Microsoft DAO x.y Object Library".
Jak znajde chwile czasu, to przerobie ta funkcje na ADO
(a moze ktos z kolegow ma gotowca ?)
Ciao, Smyk
Przeczytaj wszystkie posty z tego wątkuI wskazuje na nastepujacy kod
"Set dbs = CurrentDb"
gdie dbs jest zadeklarowane
"Dim dbs As DATABASE"
W odwolaniach jest taki tekst
"Brakuje: Microsoft DAO 3.51 Object Library"
I wlasnie z kad to zainstalowac?
Ewentualnie gdzie lezy problem? U innych to dziala.
Przeinstalowywalem Office 97 od nowa pelne instalacja i nic.
Zainstalowalem MDAC i DCOM i nic.
Co robic?
Prosze o pomoc.
Z pozdrowieniami
KArol Zynda
zy@wwpwp.it.pl
lub
kzyn@ii.pw.edu.pl
Użytkownik Karol Zynda <kzyn@ii.pw.edu.plw wiadomości do grup
dyskusyjnych napisał:97lj2h$rr@sunsite.icm.edu.pl...
(...)
W odwolaniach jest taki tekst
"Brakuje: Microsoft DAO 3.51 Object Library"
I wlasnie z kad to zainstalowac?
A jest DAO 3.5 Object Library lub też chyba DAO 2.5/3.5 Compatible Library?
Jeśli tak, to odznacz to 3.51 i włącz 3.5.
Grzegorz
Użytkownik Karol Zynda <kzyn@ii.pw.edu.plw wiadomości do grup
dyskusyjnych napisał:97lj2h$rr@sunsite.icm.edu.pl...
(...)
| W odwolaniach jest taki tekst
| "Brakuje: Microsoft DAO 3.51 Object Library"
| I wlasnie z kad to zainstalowac?
A jest DAO 3.5 Object Library lub też chyba DAO 2.5/3.5 Compatible
Library?
Jeśli tak, to odznacz to 3.51 i włącz 3.5.
Grzegorz
Możesz to bardziej uścislic. Jakie referencje do DAO. Nie jestem jeszcze
na takim pozioie.
Mogę.
Referencje znajdziesz w menu Tools=Options, w kodzie dowolnego modułu.
Odhacz ADO (nazywa się to chyba ActiveX Data czy jakoś tak) i zahacz
Microsoft DAO 3.6 (chyba że masz a97, wtedy 3.51)
B - mniej ambitne:
Przełącz się przynajmniej na czas importu formularzy na bibliotekę DAO,
która rozumie typ database. W tym celu w oknie modułu VB:
Tools -References
zaznacz Microsoft DAO 3.6 Object Library
na wszelki wypadek zamień w kodzie
Dim mojDok As Document
na Dim mojDok As DAO.Document
i teraz już moja procedura powinna śmigać :-)
ps. nie zapomnij usunąć odwołanie do DAO 3.6
Dlaczego jak mam to:
Dim qDef As DAO.QueryDef
to mi wywala user-defined type not defined ?
Dlatego, ze odwolujesz sie do biblioteki DAO, a nie dodales jej do
referencji.
Wejdz do dowolnego modulu i wybierz z menu Tools/References... Nastepnie
znajdz biblioteke Microsoft DAO ?.? Object Library i wlacz ja do referencji.
Uwaga.
Z referencjami do DAO jest problem, poniewaz w miejscu ?.? nalezy podac
jakis numerek. Tymczasem na komputerze uzytkownika ten numerek moze byc inny
i wtedy cala referencja nie dziala. Dlatego niekiedy lepiej jest uzywac
niejawnych odniesien do DAO, czyli napisac:
Dim qDef As Object
Wtedy na komputerze uzytkownika wystarczy dowolna wersja biblioteki DAO.
Oczywiscie ma to swoja niedogodnosc, bo Access nie podpowiada wtedy skladni
i nie masz dostepu do symboli stalych, ale...
I w taki oto sposob kazda prosta rzecz mozna skomplikowac ;-)
Krzysztof Pozorek
(...)
| Dlaczego jak mam to:
| Dim qDef As DAO.QueryDef
| to mi wywala user-defined type not defined ?
Dlatego, ze odwolujesz sie do biblioteki DAO, a nie dodales jej do
referencji.
Wejdz do dowolnego modulu i wybierz z menu Tools/References... Nastepnie
znajdz biblioteke Microsoft DAO ?.? Object Library i wlacz ja do
referencji.
Uwaga.
Z referencjami do DAO jest problem, poniewaz w miejscu ?.? nalezy podac
jakis numerek. Tymczasem na komputerze uzytkownika ten numerek moze byc
inny i wtedy cala referencja nie dziala. Dlatego niekiedy lepiej jest
uzywac niejawnych odniesien do DAO, czyli napisac:
Dim qDef As Object
Wtedy na komputerze uzytkownika wystarczy dowolna wersja biblioteki DAO.
Oczywiscie ma to swoja niedogodnosc, bo Access nie podpowiada wtedy
skladni i nie masz dostepu do symboli stalych, ale...
I w taki oto sposob kazda prosta rzecz mozna skomplikowac ;-)
Krzysztof Pozorek
| Krzysztof Gołębiewski:
| mam
| Dim dbs As Database
| podczas kompilacji wyskakuje ze dbs niezdefiniowane
| gdy zamieniam DAO.Database sprawa sie powtarza...
| Brak referencji do DAO?
tzn ??
jak to zrobic ?
Menu Tools / References...
Zaptaszkuj 'Microsoft DAO 3.6 Object Library'.
[ciach]
| Brak referencji do DAO?
| tzn ??
| jak to zrobic ?
Menu Tools / References...
Zaptaszkuj 'Microsoft DAO 3.6 Object Library'.
dziala wielkie dzieki
Krzysztof Gołębiewski
Moje pytanie brzmi skad te problemy ??? Rozumiem ze DAO bylo w accessie 97 i
dlatego nie mialem przedtem problemu z definiowaniem recordsetow i database.
Ale skoro zakladam nowa baze w 2000 i pisze kod tak ja poprzednio i skoro
nie moge korzystac z recordsetow i database to z czego w takim razie
powinienem korzystac ? Czy w 2000 i XP sa jakies inne zmienne?
Tego juz nie moge sie doszukac w googlach.
Użytkownik Marek Pacan <m@omega.piotrkow.plw wiadomości do grup
dyskusyjnych napisał:%LF85.18494$Qw1.437@news.tpnet.pl...
Nie wiem czy to ja coś robię źle czy co. Chodzi o to, że nie mogę w A2000
Prof. użyć np. zmiennej typu Database, Querydef.
Przeinstalowanie A2000 nic nie dało. To samo było jak chciałem otworzyć
recordset:
dbengine.worspace(0).database(0).openrecordset("nazwa",dbopentable) ale
nie
ma takiej satłej dbOpenTable!!!!!
Nie wiem czy coś trzeba doinstalować czy co?
Dzięki za pomoc
Marek P.
Problem polega na tym, że A2K standardowo nie ma DAO.
Trzeba wejść w Tools-References i zaznaczyć CheckBox przy Microsoft DAO x.x
(Nie wiem którego chcesz używać - np. 2.5/3.5 Compatibility).
Ale to nie koniec - potem trzeba przesunąć prirytet na największy możliwy,
bo inaczej część funkcji będzie się sypac (pisząc mylnie, że nieprawidłowe
argumenty).
Rafal
mkruczkow@blutex.com.pl
Chociazby ze wzgledu na pozna pore i dzien tygodnia, radze poczytac archiwum
grupy. Sporo tam jest na ten temat. Wrecz gotowce czekaja, opalajac sie w
sloncu. :-)
Cezary Wawrentowicz
----- Original Message -----
From: OlgaM <mikol@mikolajo.prv.pl
To: <pl-comp-bazy-danych-msacc@newsgate.pl
Sent: 2000/04/19 10:16
Subject: Re: Odp: Brak biblioteki
"Mr. Christie" napisał(a):
Użytkownik OlgaM <mikol@mikolajo.prv.plw wiadomości do grup
dyskusyjnych napisał:38FD68D6.C9BFE@mikolajo.prv.pl...
| Jak uporac sie z bledem: "nie mozna odnalezc projektu lub biblioteki",
| ktory pojawia sie przy deklaracji zmiennej typu database:
| Dim dbs As Database
Zobacz odwolania.
A moglbys jasniej?!
Olga
Użytkownik <waw@hum.uwb.edu.plw wiadomości do grup dyskusyjnych
napisał:000001bfaa30$5325c6c0$0c3da0d4@aaa...
Otwórz edytor basica Alt+F11
i w Tools -References ustaw Microsoft DAO 3.6
Jeżeli masz jakieś biblioteki ustawione jako MISSING to je wyłącz.
..dokladnie, jesli masz a2k.
najprawdopodobniej trzeba zaptaszkowac
Microsoft DAO 2.5/3.5 Compatibility Library 'prawdopod. jesli kod VBA z
wersji 2.0
u mnie zamiast Microsoft DAO 2.5/3.5 Compatibility Library zaznaczony
jest
Microsoft DAO 3.5 Object Library
powodzenia
Slawek
OlgaM wrote:
A moglbys jasniej?!
Olga
slavek.vcf
< 1K Pobierz
W kazdym razie ja stawiam na to, ze podswietla Ci fragment "db As
Database",
co oznacza, ze nie zadeklarowas w referencjach odwolania do DAO. Z poziomu
dowolnego modulu wybierz z menu opcje Referencje i tam dodaj Microsoft DAO
3.x Object Library
wielke dzieki to pomogło choć mnie nagle oświeciło
dzieki
Pzdr
Szukam kombinuję a może to jakaś błachostka -
Uruchamiam program w środowisku run-time (Office XP)
- na golutkim Windows 98 i program się wysypuje
w miejscu gdzie w kodzie jest np.
Set rst = CurrentDb.OpenRecordset(TxtSql)
oczywiście na innych komputerach (win98) wszystko działa bez zarzutu.
Tylko ten jednen ... czarna owca ...
błąd zgłaszany w tym miejscu to:
"ActiveX component can't create object"
Jeżeli chodzi o potencjalne problemy z referencjami, to
dodam, że korzystam z biblioteki Microsoft DAO 3.6 Object Library.
Żadnych dodatkowych, niestandardowych bibliotek czy kontrolek.
Plissss ... może ktoś wie co to może być, gdzie mam szukać
pozdrawiam: maro
wystarczyło zarejestrować bibliotekę
regsvr32 "C:Program FilesCommon FilesMicrosoft SharedDAODAO360.DLL"
swoją drogą - nie można nic zaradzić na to by instalka przygotowana
pod developerem nie wysypywała się pod Win98??? Własnie z tego powodu
wynikł ten błąd .... instalacja się jak zwykle powiesiła.
pozdrawiam: maro
| Jeżeli chodzi o potencjalne problemy z referencjami, to
| dodam, że korzystam z biblioteki Microsoft DAO 3.6 Object Library.
... i ósmą poprawkę do Dżeta (znaczy się mdac_typ.exe) oczywiście
zainstalowałeś?
--
PL
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
1.Visual Basic For Applications
2.Microsoft Access 9.0 object library
3.Microsoft ActiveX Data Object 2.1 Library
4.Microsoft DAO 3.6 Object Library
5.OLE Automation
6.Microsoft Word 9.9 Object Library
nie bylo problemu gdy w ramach tego projektu korzystalem tylko z DAO,
ale zrobilem sobie funkcje wykorzystujaca ADO i okazuje sie,
ze stala sie istotna kolejnosc(priorytet) dwoch referencji chodzi o pozycje
3 i 4 jesli jest w tej, ktora przedstawilem nie dziala mi DAO, jesli
zamienie to ADO, czy jest jakies rozwiazanie tego problemu i jaka jest
przyczyna takiego stanu rzeczy ?
pozdrawiam
Robert W.
To jest widok podlaczonych bibliotek: (Access 2k)
1.Visual Basic For Applications
2.Microsoft Access 9.0 object library
3.Microsoft ActiveX Data Object 2.1 Library
4.Microsoft DAO 3.6 Object Library
5.OLE Automation
6.Microsoft Word 9.9 Object Library
nie bylo problemu gdy w ramach tego projektu korzystalem tylko z DAO,
ale zrobilem sobie funkcje wykorzystujaca ADO i okazuje sie,
ze stala sie istotna kolejnosc(priorytet) dwoch referencji chodzi o
pozycje
3 i 4 jesli jest w tej, ktora przedstawilem nie dziala mi DAO, jesli
zamienie to ADO, czy jest jakies rozwiazanie tego problemu i jaka jest
przyczyna takiego stanu rzeczy ?
Jeśli wykorzystujesz obiekty, które występują w obu bibliotekach (te same
nazwy ale różne obiekty), np. Recordset, Connection, Field, to powinieneś
jawnie się deklarować z której biblioteki chcesz skorzystać, np.:
Dim rst As DAO.Recordset, rst2 As ADODB.Recordset
Jeśli to nie to, to podeślij kod swojej funkcji na grupę.
Pozdrawiam
Grzegorz
gdzie tu jest błąd - uczę się tego typu działań - przyjkałd z help'a
a on w wierszu czwartym mówi że type mismatch ?
1 Dim rst As Recordset, intI As Integer
2 Dim fld As Field
3
4 Set rst = Me.RecordsetClone
5 For Each fld In rst.Fields
6 ' Print field names.
7 Debug.Print fld.Name
8 Next
Jeśli Access 2K, zmień:
1 Dim rst As Recordset...
na:
1 Dim rst As DAO.Recordset...
Ewentualnie sprawdź jeszcze odwołania
(dowolny moduł, Tools--References):
Microsoft DAO 3.6 Object Library
Pozdrawiam,
Jacek (jacek_ku@poczta.onet.pl)
Mam cos takiego:
Kiedy w kodzie w vb ustawie np
dim costam as database
przy uruchomieniu krzyczy mi ze nie wie co to jest database
Prawde mowiąc nie wiem co z tym zrobic?
W innych modulach accessowych nie mam tego problemu
W menu Tools References 'zahaczyć' "Microsoft DAO 3.6 Object Library".
Następnie zmienić deklarację na:
dim costam as dao.database
placentiusz:
| Mam cos takiego:
| Kiedy w kodzie w vb ustawie np
| dim costam as database
| przy uruchomieniu krzyczy mi ze nie wie co to jest database
| Prawde mowiąc nie wiem co z tym zrobic?
| W innych modulach accessowych nie mam tego problemu
W menu Tools References 'zahaczyć' "Microsoft DAO 3.6 Object Library".
Następnie zmienić deklarację na:
dim costam as dao.database
--
Jacek (jacek_ku@onet.pl)
Dziekuje zadziałało :)
pozdrawiam,
Arek Malinowski
| Niedawno, po reinstalacji Windowsow, Access zaczal mi wyswietlac
| komunikat o brakujacej bibliotece. Dzieje sie to podczas wykonywania
| makra, na instrukcjach takich jak TRIM, STR itp. Jest to o tyle dziwne,
| ze podczas instalacji wybralem dokladnie te same opcje co podczas
| poprzedniej instalacji, po ktorej wszystko dzialalo. O jaki plik mu
| chodzi, i czy wystarczy go po prostu skopiowac z plytki, czy tez musze
| wszystko instalowac od nowa?
Chodzi mu o plik:
Dla Acc97
C:Program FilesCommon FilesMicrosoft SharedVBAVBA332.DLL
Sprawdź w odwołaniach czy masz je ustawione (zaznaczony Visual Basic for
Application)
MArek S.
--
Archiwum grupy: http://niusy.onet.pl/pl.comp.bazy-danych.msaccess
Co rozumiesz pod pojeciem referencje, bo albo cos
przeoczylem, albo czegos nie
wiem, bo nie widze nic takiego.
Alt+F11
menu tools-references
i musisz włączyć referencję Microsoft DAO 3.6 jeżeli chcesz
używać dao
od wersji bodajże A2000 - jest używane ADO,
więc albo się pzresiądz albo podłącz referencję
Zatem prosze o krotkie resume - jakie Dim i Set, lub gdzie
co ustawic, zeby
domyslnie operowac DAO?
tjw. i będzie można używać obiektów poprzez DAO.
Pozdro
MarcinG
PS.
Na końcówkach na których będzie baza musisz mieć dao
zarejestrowane inaczej będzie ci wywalało błędy
(hehehe bo się moduł nie będzie chciał skompilować ;-)
Użytkownik Piotr Olech <pol@srv.spinet.com.plw wiadomości do grup
dyskusyjnych napisał:ixYMOCLX2GNsbnSBjIzT3e5H+@4ax.com...
W jaki sposób dostajesz się do tej
bazy accessowej? Mógłbyś napisać takie 3 linijki kodu które otwierają
Ci bazę i potem jak dobierasz się do tej tabeli.
Z tego co wiem to VB 6.0 domyslnie uzywa ADO (moze sie myle gdyz sam racuje
w 5.0), moze tu jest problem. Zrob tak menu Project - References i ustaw
referencje do Microsoft DAO 3.5 Objects Library. Kod:
Dim Baza as Database
Dim R as Recordset
Set Baza = Workspaces(0).OpenDatabase("C:MojaBaza.mdb")
Set R = Baza.OpenRecordset("SELECT * FROM TABELA1")
R.Fields("a1").Properties("DecimalPlaces") = 5
Pozdrawiam Jacek Garczyk
P.S. Napisz czy jest OK
Co najdziwniejsze problem wystąpił ponownie, po godzinie, przy stanie:
1. DAO powyżej ADO
2. nawet jak pisałem dim rst as DAO.recordset
To już jest paranoja.
Wygląda na to, że muszę zrezygnować albo z DAO albo z ADO, bo razem nijak
nie chcą współpracować..
Dziwne...
Kolejność referencji nie ma znaczenia, o ile kwalifikujesz jawnie
typy obiektów. Tak więc możesz mieć:
Dim rs1 As DAO.Recordset
Dim rs2 As ADO.Recordset
Być może masz problem z biblioteką DAO?
W A2K powinieneś mieć zaznaczoną i poprawną referencję do:
Microsoft DAO 3.6 Object Library
----- Original Message -----
From: "Jacek Kubek" <jacek_ku@poczta.onet.pl
To: <pl-comp-bazy-danych-msacc@newsgate.pl
Sent: Tuesday, June 04, 2002 10:12 AM
Subject: Re: FileType w FileSearch i inne
JJS:
[...]
| Co najdziwniejsze problem wystąpił ponownie, po godzinie, przy stanie:
| 1. DAO powyżej ADO
| 2. nawet jak pisałem dim rst as DAO.recordset
| To już jest paranoja.
| Wygląda na to, że muszę zrezygnować albo z DAO albo z ADO, bo razem
nijak
| nie chcą współpracować..
Dziwne...
Kolejność referencji nie ma znaczenia, o ile kwalifikujesz jawnie
typy obiektów. Tak więc możesz mieć:
Dim rs1 As DAO.Recordset
Dim rs2 As ADO.Recordset
Być może masz problem z biblioteką DAO?
W A2K powinieneś mieć zaznaczoną i poprawną referencję do:
Microsoft DAO 3.6 Object Library
I tak mam. No nie wiem, mam nadzieję, że wsyzstko się samo poprawi
:-)
Pozdrawiam
Jacek
Hmmm.... To ja się już bardzo kajam, ale pojęcia nie mam, co to referencje
i
gdzie ich szukać. A dodatkowo deprymuje mnie fakt, że w tym samym Accesie
2002 na tym samym kompucie przykładowa aplikacja ze wspomnianego
podręcznika
z identyczną deklaracją w kodzie.... działa bez zarzutu... :((((
Referencje przypisane są do bazy a nie do Access'a. Żeby je ustawić, kliknij
zakładkę Muduł, potem otwórz dowolny, a jeśli go nie masz kliknij nowy. W
menu Narzędzia kliknij Odwołania - i właśnie w tym oknie masz zaznaczyć
Microsoft DAO ??.?? Object library.
Pozdr,
GB
...
| Problem w tym, że aby zastosować tę procedurę w Access2000 muszę
dołączyć
bibliotekę Microsoft DAO.
A kto Ci to powiedzial, ze musisz?
Wystarczy, ze zmienisz 4 linijki w swoim kodzie i dalej bedzie dzialal
"bez"
DAO:
Dim db 'As Database
Dim tbl 'As TableDef
Dim fld 'As Field
(tu reszta Twojego kodu z jedna zmiana - zamiast stalej dbText trzeba
jawnie
podac jej wartosc=10:
If .Type = 10 And .AllowZeroLength = False Then
).
W ten sposob unikniesz odwolan do biblioteki DAO.
Dziala, sprawdz.
K.P.
Faktycznie.
Jakie są niebezpieczeństwa takich wywołań obiektów DAO bez podpięcia
referencji?
Po kiego podpinać referencje i mieć z tym kłopoty (zakładając, że plusy i
minusy zmiennych Variant są do zaakceptowania) ?
pozdrawiam
Robert
Dalej to samo:
procedura zatrzymuje się na tej lini i:
Run-time error '30610:
Za mało parametrów. Oczekiwano1.
To sprawdź jeszcze jedną rzecz.
W edytorze VBA menu Tools/References
Tam powinieneś mieć zakliknięte: Microsoft DAO 3.6 Object Library
Na dodatek wiem że znaczenie ma kolejność ustawienia tych bibliotek.
Ja mam tak:
Visual Basic For Aplications
Microsoft Access 9.0 Object Library
Microsoft DAO ....
OLE Automation
Microsoft Visual Basic for Aplications Extensibility 5.3
Jak to będziesz miał pozaznaczone to musi zadziałać
Michał Kożusznik
Jeżeli chodzi o funkcję Shell to użyłem w sensie:
Call Shell("ping 127.0.0.1", 1)
Natomiast jeżeli chodzi o "Refences" czyli inaczej "Odwołania" to też się nad
tym zastanawiałem. U mnie są zaznaczone następujące odwołania:
- Visual Basic For Applications
- Microsoft Access 11.0 Object Library
- OLE Automation
- Microsoft DAO 3.6 Object Library
- Microsoft ActiveX Data Objects 2.1 Library
Sorry za błędy, starałem się szybko pisać oraz za skróty.
Jeżeli chodzi o funkcję Shell to użyłem w sensie:
Call Shell("ping 127.0.0.1", 1)
Natomiast jeżeli chodzi o "Refences" czyli inaczej "Odwołania" to też się nad
tym zastanawiałem. U mnie są zaznaczone następujące odwołania:
- Visual Basic For Applications
- Microsoft Access 11.0 Object Library
- OLE Automation
- Microsoft DAO 3.6 Object Library
- Microsoft ActiveX Data Objects 2.1 Library
Na 99% możesz wywalić ADODB (to ostatnie odwołanie), no chyba że używasz.
Nie widziałem jeszcze poważnego projektu używającego jawnie RÓWNOCZEŚNIE
adodb i dao. Ponadto prawdopodobnie OLE automation tez możesz sobie
darować.
Kompilacja niczego nie wyrzuca, żadnych komunikatów, hm?
A jak robisz krokowo, tez cisza?
Oki dzieki za pomoc :) Jest tylko maly problem przy kompilacji wywali dla
"Dim myQry as QueryDef" ""User-defined type not defined"".
Dodaj w referencjach "Microsoft DAO 3.6 Object Library"
Piotr
Mam zaznaczone:
Visual Basic for Applications
Microsoft Access 9.0 Object Library
OLE Automation
Microsoft ActiveX Data Object Library
Microsoft Forms 2.0 Object Library
Microsoft DAO 2.5? 2.6? Nie jestem pewien... ale chyba to jest to.
Dokładnie o to mi chodziło. Brzmi to bardzo interesująco, mogę prosić o
więcej szczegółów.
Nie widzialem A2002, ale pewnie jest podobnie jak w A2k.
Referencje ustawia sie w oknie modulow VBA:
Tools -References
z listy nalezy zaznaczyc Microsoft DAO ## Object Library, (gdzie ## wersja
sterownika)
Byc moze uzasadnione bedzie usuniecie referencji do bibliotek typowych dla
A2002, czyli Microsoft ActiveX ... , ADO ... czy cos w tym rodzaju.
Powtarzam A2002 na oczy nie widzialem, ale pwenikiem oparty jest na ADO.
Dodam, ze niekoniecznie trzeba usuwac te referencje, ale aplikacja korzysta
z bibliotek w kolejnosci jaka zajmuja w oknie odwolan. Bezpiecznie jest tez
jawnie odwolywac sie do konkretnych bibliotek stosujac notacje kropkowa np:
dim rst1 as DAO.recordset 'Microsoft jet
dim rst2 as ADO.recordset 'ado
To juz wymaga pewnych modyfikacji kodu.
powodzenia
kc
Nrzędzia -odwołania -
sprawd czy masz zaznaczone microsoft DAO 3.51 Object Library
ewentualnie odznacz wszystko co jest opatrzone napisem
"BRAKUJE"
Użytkownik "SgTs" <s@interia.plnapisał w wiadomo ci
Witam serdecznie.
Dostałem komunikat:
Compile error:
User-defined type not defined
i zaznaczone jest: dbs As database
i ponownie proszę o pomoc.
Pozdrawiam
SgTs
s@interia.pl
Użytkownik Mirek :-) <dc@it.plw wiadomości do grup dyskusyjnych
napisał:a1uu7u$p8@news.tpi.pl...
| np. pod kliknięciem klawisza :
| dim dbs as database, rst as recordset
| set dbs = currentdb
| set rst = dbs.openrecordset("TwojaTabela")
| rst.addnew
| rst![Twoje_Pole_w_Tabeli] = me.Twoj_Niezwiazany_Formant.Value
| rst.update
| set dbs= nothing
| set rst = nothing
| koniec
| Pozdrawiam
| Mirek
| Użytkownik "SgTs" <s@interia.plnapisał w wiadomo ci
| | Witam serdecznie.
| W formularzu są niezwiązane pola z żadną tabelą. Jak pobrać wartości
tych
| pól z formularza i umieścić je w tabeli za pomocą VB ???
| Pozdrawiam
| SgTs
| s@interia.pl
| Nie rozumie czy chcesz korzystać z DAO czy ADO.
| Proponuję na początek dodać referencję do Data Access Object
| i zadeklarować dbs jako DAO.Database
a jak sie dobrać do Data Access Object i dodac referencję?
Gdzie tego szukac?
Z góry dziękuję.
Grzesiek
Otwórz dowolny moduł
Menu Narzędzia-Odwołania
zaznacz
Microsoft DAO 3.51 Object Library
Pozdro
...ale niestety dalej nic z tego. Mam tylko ...zmienna as DAODB.(i tutaj
nie
mam Database)
Nie mogę zadeklarować as DAO. ani ADO.
Sprawdź referencje:
(dowolny moduł) Menu Tool -References...
zaznaczone:
dla ADO:
Microsoft ActiveX Data Objects x.x Library
dla DAO:
Microsoft DAO x.xx Object Library
Sprawdź referencje:
(dowolny moduł) Menu Tool -References...
zaznaczone:
dla ADO:
Microsoft ActiveX Data Objects x.x Library
dla DAO:
Microsoft DAO x.xx Object Library
Mam zaznaczone:
Microsoft ActiveX Data Object 2.1 Library
oraz
Microsoft Access 9.0 Object Library
----------------
Wojciech Nabel
(na@poczta.onet.pl)
Dim Tabela as DAO.Database
Pozdrawiam
Ooops, nie doczytałem do końca i szybko odpowiedziałem.
Może nazwy zmiennych są zastrzeżone ?
Jeśli to nie to, to chyba nie jest zbyt dobrze z Twoim Access'em.
Grzesiek
"Jakub" <jakub1@poczta.onet.plwrote in message
| Przy otworzeniu formularza pojawia się błąd: "Compile error:
| User-defined type not defined" i zaznaczony jest fragment kodu: Dim T As
| Database. Gdy próbowałem wpisać podobną deklarację z innymi zmiennymi,
| zawsze pojawiał się ten sam błąd. Podczas pisania tej deklaracji
kompilator
| nie podpowiadał po wyrażeniu As możliwości wpisania słowa Database.
| Co zrobić aby zadeklarować zmienną typu Database?
| Z góry dziękuję za odpowiedź.
| Jakub
| jakub1@poczta.onet.pl
Musisz w referencjach: Tools/References
zaznaczyć Microsoft DAO 3.6
a potem deklarować zmienną jako;
Dim Tabela as DAO.Database
Pozdrawiam
| Ooops, nie doczytałem do końca i szybko odpowiedziałem.
| Może nazwy zmiennych są zastrzeżone ?
| Jeśli to nie to, to chyba nie jest zbyt dobrze z Twoim Access'em.
| Grzesiek
| "Jakub" <jakub1@poczta.onet.plwrote in message
| | Przy otworzeniu formularza pojawia się błąd: "Compile error:
| User-defined type not defined" i zaznaczony jest fragment kodu: Dim T
As
| Database. Gdy próbowałem wpisać podobną deklarację z innymi zmiennymi,
| zawsze pojawiał się ten sam błąd. Podczas pisania tej deklaracji
| kompilator
| nie podpowiadał po wyrażeniu As możliwości wpisania słowa Database.
| Co zrobić aby zadeklarować zmienną typu Database?
| Z góry dziękuję za odpowiedź.
| Jakub
| jakub1@poczta.onet.pl
Czesc
W nowej bazie zaznacz w referencjach odwolanie do
Microsoft DAO 3,6
I po bolu.
Ale musisz to robic w kazdej nowootwartej bazie
jurekeme
Proszę o dużą wyrozumiałość. Gdzie można znaleźć referencje? Jak w mojej
bazie zaznaczyć odwołanie do Microsoft DAO 3,6?
Jakub
----- Original Message -----
From: Jakub <jakub1@poczta.onet.pl
To: <pl-comp-bazy-danych-msacc@newsgate.pl
Sent: Monday, April 15, 2002 12:32 AM
Subject: Re: Błąd kompilacji ?
Czesc
W nowej bazie zaznacz w referencjach odwolanie do
Microsoft DAO 3,6
I po bolu.
Ale musisz to robic w kazdej nowootwartej bazie
jurekeme
--
Archiwum grupy: http://niusy.onet.pl/pl.comp.bazy-danych.msaccess
| Użytkownik "Krzysztof Naworyta" <k.nawor@datacomp.com.plnapisał w
| wiadomości |
| Oto lista referencji, które mam zaznaczone:
| Visual Basic For Applications
| Microsoft Access 9.0 Object Library
| Microsoft DAO 3.6 Object Library
| OLE Automation
| Microsoft ActiveX Data Objects 2.1 Library
| Microsoft Calendar 9.0
| MISSING: Tutor ActiveX Control Module
| Disk-Management Snap-In Object Library
| ctv OLE Control Module
| Microsoft Windows Common Controls 6.0
| Microsoft Outlook 9.0 Object Library
| Microsoft Excel 9.0 Object Library
| Microsoft Office 9.0 Object Library
| Microsoft SQL Parser Object Library 1.0
| Microsoft Visual Basic For Applications Extensibility 5.3
| acwzmain
| Microsoft ActiveX Data Objects Recordset 2.5 Library
|
Piękna lista ....
;-)))))))
A możesz powiedzieć z czego rzeczywiście korzystasz ???
świadomie ???
Ale po kolei:
7-ma pozycja - referencja urwana !
MISSING: Tutor ActiveX Control Module
^^^^^^^^^^
To jest główny powód dla którego reszta nie działa !
A poza tym, jeśli w kodzie nie odwołujesz się do obiektów jakiejś aplikacji,
to nie ustawiaj do niej referencji.
Prawdopodobnie począwszy od 7-ej pozycji włącznie możesz WSZYSTKO poodhaczać
KN
(...)
| Zaglądałem do referencji jest ok. Co najlepsze po skopiowaniu całego
| kodu
Po czym poznales, ze jest OK?
Zazwyczaj jest błąd, czyli napis "MISSING"
| VB do nowo utworzonej bazy (akurat mam taką która sama tworzy i pobiera
| dane przy starcie) działa!!!! Nie wiem co jest nie tak....
Referencje!
K.P.
P.S. A wg mnie to bylo tak: Ekperymetowales z nieznanymi ActiveX i nie
wiedziales o tym, ze Access po takich zabawach wrzuca rozne biblioteki do
referencji. Niestety po przeinstalowaniu systemu zginely Ci te ActiveX, a
referencje do nich zostaly. (Sprawdz, czy w tej starej bazie masz takie same
referencje, jak w nowej czystej.)
Dla przykładu podaje,
Visual Basic For Applications
Microsoft Access 10.0 Object Library
OLE Automation
Microsoft DAO 3.6 Object Library
Microsoft ActiveX Data Object 2.1 Library
Jedna wątpię czy jeżeli brakuje jakieś kontrolki to access jej nie
usuwa... Jednak nie korzystam z żadnych zewnętrznych kontrolek...
W/w referencje mam tak samo w nowej bazie, gdzie kopiuje tekst VB i
wkopiowuje do nowej. Jedynie dodaje brakujące... Próbowałem "przeklepać"
referencje w starej bazie jednak i to nie pomogło...
Krzysztof Pozorek napisał(a):
| (...)
| | Zaglądałem do referencji jest ok. Co najlepsze po skopiowaniu całego
| | kodu
| Po czym poznales, ze jest OK?
Zazwyczaj jest błąd, czyli napis "MISSING"
| | VB do nowo utworzonej bazy (akurat mam taką która sama tworzy i pobiera
| | dane przy starcie) działa!!!! Nie wiem co jest nie tak....
| Referencje!
| K.P.
| P.S. A wg mnie to bylo tak: Ekperymetowales z nieznanymi ActiveX i nie
| wiedziales o tym, ze Access po takich zabawach wrzuca rozne biblioteki do
| referencji. Niestety po przeinstalowaniu systemu zginely Ci te ActiveX, a
| referencje do nich zostaly. (Sprawdz, czy w tej starej bazie masz takie same
| referencje, jak w nowej czystej.)
Dla przykładu podaje,
Visual Basic For Applications
Microsoft Access 10.0 Object Library
OLE Automation
Microsoft DAO 3.6 Object Library
Microsoft ActiveX Data Object 2.1 Library
Jedna wątpię czy jeżeli brakuje jakieś kontrolki to access jej nie
usuwa... Jednak nie korzystam z żadnych zewnętrznych kontrolek...
W/w referencje mam tak samo w nowej bazie, gdzie kopiuje tekst VB i
wkopiowuje do nowej. Jedynie dodaje brakujące... Próbowałem "przeklepać"
referencje w starej bazie jednak i to nie pomogło...
Może niezgodność wersji językowej Windowsa? Funkcja Mid jest oferowana
przez Visual Basic For Applications.
Brakuje obiektu Connection w xx.Open:
'out === Dim b As Database
'out === Set b = CurrentDb
Dim xx As ADODB.Recordset
Set xx = New ADODB.Recordset
xx.Open "SELECT * FROM tabela" , CurrentProject.Connection
'tak wyglada connection string:
MsgBox CurrentProject.Connection.ConnectionString
CurrentDB jest stosowane poprzez DAO, jesli wolisz zastosowac DAO
musisz ustawic reference do Microsoft DAO 3.x Object Library.
Brakuje obiektu Connection w xx.Open:
'out === Dim b As Database
'out === Set b = CurrentDb
Dim xx As ADODB.Recordset
Set xx = New ADODB.Recordset
xx.Open "SELECT * FROM tabela" , CurrentProject.Connection
'tak wyglada connection string:
MsgBox CurrentProject.Connection.ConnectionString
CurrentDB jest stosowane poprzez DAO, jesli wolisz zastosowac DAO
musisz ustawic reference do Microsoft DAO 3.x Object Library.
Dzięki wielkie!!
Może najpierw podaj co masz w tych referencjach ...
;-)
Już szefie ;-)
-Visual Basic For Application
-Microsoft Access 11 Object Library
-OLE automation
-Microsoft DAO 3.6 Object Library
-Microsoft Active X Data Object 2.5 Library
-Microsoft Windows Common Control 6.0 (sp6)
-Microsoft Office 11 Object Library
Jeszcze jedno, mam to naprawić zdalnie - tzn. przez telefon do użytkownika.
|| Może najpierw podaj co masz w tych referencjach ...
| -OLE automation
a korzystasz ?
| -Microsoft DAO 3.6 Object Library
| -Microsoft Active X Data Object 2.5 Library
korzystasz z obu ?
| -Microsoft Windows Common Control 6.0 (sp6)
ufff, no tutaj może być kiepsko ...
| -Microsoft Office 11 Object Library
też dałoby się zrezygnować ...
Najpoważniejszy problem to oczywiście ocx (Common Control). Referencje
będą urwane np. z powodu różnic wersji ...
Inna sprawa: często (?) przy przenoszeniu pliku z komputera na komputer
urywała mi się referencja do DAO.
Tego nie widać w referencjach, ale pomagało jej przeklikanie.
Programowo to zdaje się poprzez Regsvr32 ...
Odsyłam do Ashish'a:
http://mvps.org/access/modules/mdl0022.htm
http://mvps.org/access/downloads/wzref.zip
oraz tutaj:
http://www.trigeminal.com/usenet/usenet026.asp
Admin napisał(a) w wiadomo ci: <01C0CCCB.2C19F560@ADMIN...
wychodzi na to, ze nie tylko date() padlo, inne funkcje kodu VB np left
tez
nie dzialaja, pomoc msaccess wskazuje na brak odpowiednich odwolan!!, z
tego
jestem zielony- gdzie sa zrodla ?
Jak left nie dziala, to z pewnoscia odwolania.
[...]
dokładnie, tylko jaka może być przyczyna, jeśli odwołaia są nieaktywne?
(wyszarzone)
Tak jest po otwarciu firmowej bd metody.mdb ; po otwarciu pustej bazy
można wejść w odwołania, tylko że dostępne jest odwołanie najwyżej
do Microsoft DAO 3.0 Object Library, a powinno być DAO 3.5 ?
Jak dokonać instalacji, by DAO 3.5 było dostępne? Jak już pisałem
instalowałem ponownie
Access'a97, uprzednio czyszcząc eraser97.exe - ale wcześniej na komputerze
był Access95.
Czy istnieje eraser95.exe ? Może w tym jest problem, że Access95 coś
zostawił
a eraser97.exe nie usuwa tego?
pozdrawiam Ryszard G.
| Dim db as Database, rst as Recordset
| set db=currentdb
| set rst=db.openrecordset(moja kwerenda)
| 'nie wiem, czy nie trzeba bedzie jeszcze wypelnic recordsetu
rst.movelast
i
| rst.movefirst
| pole_tekstowe=rst!pole_kwerendy
| rst.close
| set rst=nothing
| set db=nothing
Dzieki, ale...
wszystko byloby OK, ale ta baza dziala w sieci i...
nie ma obiektu Database, a odwołania do innych podobnych nie dzialają...
:-(
co to znaczy, ze 'baza dziala w sieci'? mam baze, ktora od dwoch lat dziala
w sieci i powyzszy kod dziala bez problemu :-)
hhmmm... moze nie masz odwolania do microsoft dao 3.51 object library?
(dowolny modul -narzedzia -odwolania)
jarek
© 2009 Najlepszy miesiąc kawalerski w Polsce !!! - Ceske - Sjezdovky .cz. Design downloaded from free website templates