Witam
W DAO jest TableDef - można wyświetlić strukturę tabel.
Natomiast w ADO tego nie znalazłem. Przeczytałem o obiekcie Catalog i
Table - ADOX, ale to ??? chyba ??? nie to samo.
Więc pytanie brzmi jak wyświetlić strukturę tabeli wykorzystując ADO?
ADO to tak właściwie kilka bibliotek
ADODB - Microsoft ActiveX Data Objects 2.7 Library
ADOMD - Microsoft ActiveX Data Objects (Multi-dimensional) 2.7 Library
ADOR - Microsoft ActiveX Data Objects Recordset 2.7 Library
ADOX - Microsoft ADO Ext. 2.7 for DDL and Security
JRO - Microsoft Jet and Replication Objects 2.6 Library
Nie jest to połączone w jednej bibliotece jak to było w przypadku DAO
Jeśli interesuje cie struktura bazy otwierasz ją za pomocą ADODB.Connection.
Sama baza reprezentowana jest jako ADOX.Catalog, masz tam dostęp do
kolekcji tabel, perspektyw i procedur. Oczywiście najpierw musisz zainicjować
ADOX.Catalog poprzez przypisanie do ADOX.Catalog.ActiveConnection
wcześniej utworzonego obiektu ADODB.Connection.
Jest jeszcze jeden sposób, odczytanie tych informacji jako rekordsetu
poprzez ADODB.Connection.OpenSchema.
Adam
aboc@komako.com.pl
Użytkownik Piotr Michał <p@writeme.comw wiadomości do grup dyskusyjnych
napisał:37735472.8E656@writeme.com...
Witam ponownie
zainstalowalem ADO, ale za nie nie moge go wykorzystac
w moim vb5 ent.
Wskazalem odpowidnia bibliteke w 'Reference' i dalej probuje
wskazac komponent, ale wyskakuje blad, ze nie moze zaladowac
tego komponentu.
Prosze o wszelkie sugestie
Dzieki z gory
Piotr Michal
Ale przy próbie wywołania rs.Update wyskakuje błąd:
"Insufficient base table information for updating or refreshing."
W czym problem?
Niech to nie zabrzmi jako standardowa odpowiedz Admina, ale u mnie ten kod
dziala :(
Przytaczam go w calosci:
Private Sub Form_Load()
Dim oCon As ADODB.Connection
Dim rs As ADODB.Recordset
'wybierz odpowiedni connection string w zaleznosci od wersji jezykowej twojego
systemu
Const SOURCE_CONNECTION_STRING_ENG As String = "Provider=MSDASQL.1;Persist
Security Info=False;Data Source=dBASE Files;Initial Catalog="
Const SOURCE_CONNECTION_STRING_PL As String = "Provider=MSDASQL.1;Persist
Security Info=False;Data Source=Pliki programu dBase;Initial Catalog="
Set oCon = New ADODB.Connection
'plik dbf nazywa sie test.dbf i jest w glownym katalogu dysku c
oCon.ConnectionString = SOURCE_CONNECTION_STRING_PL & App.Path
oCon.Open
Set rs = New ADODB.Recordset
rs.Open "select * from xx.dbf", oCon, , adLockOptimistic
' test tabela xx.dbf znajduje sie w katalogu biezacym projektu i posiada pole
nazw
MsgBox rs("nazw")
rs("nazw") = InputBox("Podaj cos")
rs.Update
MsgBox rs("nazw")
End Sub
A w menu Project-References ustawiles dostep do Microsoft ActiveX Data Objects
2.5 Library ?
Pozdrawiam.
Pozdrawiam
KTMajew
Udało się (musiałem zmienić nazwę ADODB.dll na Interop.ADODB.dll), ale nie
rozumiem jednego.
W referencjach wybrałem Microsoft ActiveX Data Object 2.8 Library, co
wskazuje na plik msado15.dll, a potem aplikacja próbuje wywołać
Interop.ADODB.dll.
Czemu następuje ta zmiana?
msado15.dll to biblioteka COM'owa
Aplikacje pisane w środowisku .NET nie potafią bezpośrednio odwoływać sie
do tego typu bibliotek, dlatego też potrzebują warstwy pośredniej
właśnie bibliotek COM interop,
bedących wraperem łączącym świat COM'owy z .NET'owym
Jak każda warstwa pośrednia, interop assembly spowalnia operacje na bazie
danych
w porównaniu z czysto .NET-owym ADO.NET, które to w przypadku niektórych
rodzji źródeł danych odwołuje sie do nich za pomocą bibliotek OLEDB,
albo natywnych bibliotek danej bazy a niektórych przypadkach nawet
bezpośrednio
poprzez warstwe sieciową.
| Do czego się przydaje host skryptów jeśli tylko interpretuje skrypty
| VBScript?
Nie wiem, ale
file-win32-x86=http://activex.microsoft.com/controls/vb5/MSVBVMb5.cab nie
ma
nic wspólnego z VBScript. To raczej runtime dla VB, nie dla VBS! VB jest
kompilowany do kodu maszynowego, a VBS interpretowany przez host skryptów.
Rzeczywiście sprawdziłem myślałem że żeby została pobrana kontrolka
wcześniej musi być wykonany na stronie kod w VBScript ale go tam
nie było. Teraz jednak znalazłem inną stone z kontrolką ActiveX która
działa bez hosta. Więc pochopnie wyciągnołem wnioski.
Te sekcja najprawdopodobnie odnosi się do zasobów/bibliotek które są
potrzebne do pobrania w razie ich braku w systemie aby plik ocx mógł
działać. Pytałem jak odinstalować kontrolke ale z tego co widze jest to
niemożliwe bo po pobraniu i uruchomieniu jej może zrobić w systemie
co jej się żywnie podoba. W czym mogę taką kontrolke uruchomić
niezależnie od przeglądarki? Jest jakiś program do śledzenia tego co
robi po uruchomieniu tak żeby można wyłowić zapisywanie na dysku
i dociąganie nowych plików?
W zasadzie dwie sprawy (bez pełnego kodu nie da się wiele powiedzieć)
Nie wiem, czy Microsoft Jet and Replication Objects 2.5 Library nie
gryzie sie z Microsoft ActiveX Data Objects 2.5 Library
Chyba nie - bo innaczej nie da sie chyba spakowac bazy w ADO
I drugie - nie próbowałeś zamienić
| Reference=VB Web Subclassing DLL
na to subclassing z vbacc?
Sproboje :-)
I na pewno nie pomieszałeś wersji popup dla vb6 i vb5 ??
| Reference=vbAccelerator Popup Menu DLL. ***-Compiled to VB6 <-***. Create
unlimited
| new pop-up menus.
pozdrawiam i dziekuje
M.Kierepka
-~ Wyslano ze strony - http://www.com.pl ~-
Tyle co znalazlem jak szukale rozwiazania "Twojego" problemu dla
mscomm32.ocx.........
//
ActiveX Control Contains Other Licensed Controls Requiring Run-Time License
An example of this is an ActiveX control that contains the Visual Basic 4.0
version of the Mscomm32.ocx, which is a licensed control. The ActiveX
control displays correctly on any machine that that Visual Basic or Visual
C++ installed because VB and VC++ provide run-time licenses for these
controls automatically when installed.
To work around this problem, find a non-licensed version of the same
control, or another third-party control with the same functionality. In the
case of the licensed Mscomm32.ocx, the version of Mscomm32.ocx that was
distributed with Visual Basic 5.0 is not licensed and can be used. This
control may be downloaded directly from
http://activex.microsoft.com/controls/vb5/mscomm32.cab
//
ML wrote in message <7eso8s$87@news.ikp.pl...
Po przesiadce z VB5 na VB6 nie moge korzystac z kontrolki DBGrid (tej z
piatki), wywala komunikat ze nie mam licencji na ten komponent. Czy ktos
wie
jak to obejsc i czy jest to mozliwe. PILNE.
pozdrawiam
marcin
Tak, ale obiekt ten znajduje w MDAC2.5...
A on nie instaluje się...
I program ma problemy z :
Library ADODB
C:WINNTsystem32msado25.tlb
Microsoft ActiveX Data Objects 2.5 Library
Mogę się spytać od kiedy to msado25.tlb znajduje się w C:WINNTsystem32
prawidłowo przeprowadzona instalacja powinna umieścić go w C:Program FilesCommon FilesSystemado
Tip. pliki wchodzące w skład MDAC'a i JET40 nie mogą być instalowane poprzez Package and Deployment Wizard'a
dlatego mam też dla ciebie radę, pobierz z www.microsoft.com/data informacje jakie pliki wchodzą w skład tych komponentów i usuń je z własnej instalki, PDW jest mało inteligentny i próbuje instalować wszytkie pliki do których znajdzie refenencje w aplikacji, co jak widać prowadzi do problemów.
Tak, ale obiekt ten znajduje w MDAC2.5...
A on nie instaluje się...
I program ma problemy z :
Library ADODB
C:WINNTsystem32msado25.tlb
Microsoft ActiveX Data Objects 2.5 Library
Mogę się spytać od kiedy to msado25.tlb znajduje się w C:WINNTsystem32
prawidłowo przeprowadzona instalacja powinna umieścić go w C:Program
FilesCommon FilesSystemado
Tip. pliki wchodzące w skład MDAC'a i JET40 nie mogą być instalowane
poprzez Package and Deployment Wizard'a
Nie wiem gdzie powinny być, ja je mam tam, gdyż tak je zainstalował
najprawdopodobniej VB lub Mdac (mam Win2k)
I u mnie jest wszystko ok.
Wskazałem tylko komponent jaki sprawia problemy
Pozdrowienia
Rafał B.
I program ma problemy z :
Library ADODB
C:WINNTsystem32msado25.tlb
Microsoft ActiveX Data Objects 2.5 Library
Może zmień w References na ADO 2.1, na pewno nie powinno być problemu na XP,
bo używam.
Poza tym są różne narzędzia np OLE View, którymi możesz sprawdzić, czy ADO
2.5 i JET 2.5 są w ogóle zarejestrowane.
Pozdrawiam
Artur
Witam,
probuje instalowac program na komputerze bez Office i niestety przy
uruchamianiu pojawia sie blad mowiacy ze nie mozna znalezc obiektu ADO,
pytanie brzmi - w jaki sposob dolaczyc potrzebne elementy do instalki,
jakie
to sa elementy (dla ADO 3.51), czy jest to dopuszczalne z punktu widzenia
licencji (VB Pro)
pzdr
grzegorz
aha - jak dam mu sie polaczyc, to i tak niczego potrzebnego sobie (?) nie
znajduje, i zabawa zaczyna sie od poczatku (znow chce sie laczyc), jak
otwieram jakis inny plik (albo ten sam po raz 2-gi)...
thx
Marcin Wieczorek wrote:
Stanislaw Pasko <sp174@zodiac2.mimuw.edu.plnapisał(a):
| ActiveX ??? Nie rozsmieszaj mnie bo pekne...
| Podaj 10 - niewiele, prawda - 10 POPULARNYCH stron WWW *(z wyjatkiem firmy
| ktora produkuje ActiveX - Microsoft) - ktore korzystaja z tego....
| Nawet Java rzadko sie zdarza, a to Netscape obsluguje swietnie. Poza
| Netscape'm masz jeszcze stale rozwijajaca sie przegladarke KDE, podobnie
| jak IE4 zintegrowana z FileManagerem...
Czyli nie mozna korzystac z ActiveX podobnie jak z kanalow. Ale
niedlugo moze sytuacja sie zmieni bo Microsoft wypuscil bete MSIE4 pod
solarisa ( Motif ).
Wierzysz w to? Przyglądałeś się różnym MS-technologiom od środka?
Aktualna wersja Active X w ogóle nie przewiduje użycia ich na różnych
platformach systemowych i sprzętowych.
Ja sądzę, że prędzej KDE będzie korzystało z komponentów dających się
wykorzystać na różnych platformach niż MS dostosuje swoje ActiveX.
Michał
Wojtek Surowka <Wojt@aldec.katowice.plwrote:
Ale to zostalo podane jako przyklad niepotrzebnych kompromisow, majacych
negatywny wplyw na jakosc systemu. Jak rozumiem, zaimplementowanie COM i
DCOM jest kompromisem przyjetym dla zachowania zgodnosci z Win3.11? I mozna
by tych implementacji uniknac bez zmniejszania zgodnosci z 3.11? Przeciez to
bzdury.
Jakie Win3.11? Win3.11 to w ogóle chyba nie słyszało o ActiveX...
Microsoft najpierw wprowadził różne fascynujące rozszerzenia do MSIE
(pliki .lnk, .url no i RadioActiveX jak go niektórzy nazywają :) a dopiero
później zaczął myśleć o jakichś zabezpieczeniach. Zgodzisz się chyba,
że kolejność powinna być odwrotna? Kontrolki ActiveX niby powinny być
sygnowane, ale i w tym mechanizmie wykazano słabości spowodowane dość
luzackim podejściem w/w firmy do bezpieczeństwa swoich produktów.
"Filip "Fatman" Kata" <ad@linuxace.nieprzepadamzaspamem.netwrote:
| aha. mozesz podac przyklad takiej niepolatanej dziury w msie?
| http://secunia.com/product/11/
| Drugi wykres od góry
| unpatched - 28%
| partial fix - 13%
zadne z tych 'unpatched' czy 'partial fix' nie umozliwia zdalnego
wykonania kodu na atakowanej maszynie, czyli dziury porownywalnej z ta w
firefoksie.
Microsoft MCIWNDX.OCX ActiveX Plugin Buffer Overflow
Unpatched. Secunia Advisory 11 of 24 in 2003
Release Date:
2003-08-14 Secunia Advisory ID:
SA9534 Solution Status: Unpatched
Short Description:
A vulnerability has been identified in a Microsoft ActiveX plugin called
MCIWNDX.OCX, which possibly allows malicious HTML documents to execute
arbitrary code on a vulnerable system. [Read More]
| aha. mozesz podac przyklad takiej niepolatanej dziury w msie?
| http://secunia.com/product/11/
| Drugi wykres od góry
| unpatched - 28%
| partial fix - 13%
| zadne z tych 'unpatched' czy 'partial fix' nie umozliwia zdalnego
| wykonania kodu na atakowanej maszynie, czyli dziury porownywalnej z ta w
| firefoksie.
Microsoft MCIWNDX.OCX ActiveX Plugin Buffer Overflow
Unpatched. Secunia Advisory 11 of 24 in 2003
Release Date:
2003-08-14 Secunia Advisory ID:
SA9534 Solution Status: Unpatched
Short Description:
A vulnerability has been identified in a Microsoft ActiveX plugin called
MCIWNDX.OCX, which possibly allows malicious HTML documents to execute
arbitrary code on a vulnerable system. [Read More]
oczywiscie zdajesz sobie sprawe, co uzytkownik musi zrobic, zeby activex
w ogole sie uruchomilo?
Ponure Zacietrzewienie wrote:
"Filip "Fatman" Kata" <ad@linuxace.nieprzepadamzaspamem.netwrote:
| | aha. mozesz podac przyklad takiej niepolatanej dziury w msie?
| | http://secunia.com/product/11/
| | Drugi wykres od góry
| | unpatched - 28%
| | partial fix - 13%
| zadne z tych 'unpatched' czy 'partial fix' nie umozliwia zdalnego
| wykonania kodu na atakowanej maszynie, czyli dziury porownywalnej z ta w
| firefoksie.
| Microsoft MCIWNDX.OCX ActiveX Plugin Buffer Overflow
| Unpatched. Secunia Advisory 11 of 24 in 2003
| Release Date:
| 2003-08-14 Secunia Advisory ID:
| SA9534 Solution Status: Unpatched
| Short Description:
| A vulnerability has been identified in a Microsoft ActiveX plugin called
| MCIWNDX.OCX, which possibly allows malicious HTML documents to execute
| arbitrary code on a vulnerable system. [Read More]
oczywiscie zdajesz sobie sprawe, co uzytkownik musi zrobic, zeby activex
w ogole sie uruchomilo?
Użytkownicy linuksa raczej nie zdają sobie sprawy albo zamykają oczy gdy
jest pytanie o zainstalowanie/uruchomienie aktywnej zawartości. ;) Bo
zawsze im się samo instaluje i uruchamia. ;)
BTW tego mciwnd.ocx także nie ma domyślnie w systemie.
Mam nastepujacy problem. Otwierajac praktycznie kazdy film zanim zacznie sie
odtwarzac 2 minuty probuje pobrac kodek ze strony activex.microsoft.com po
czym podaje ze nie znalazl ale film odtwarza sie normalnie. Obojetnie czy
uzyje microsoftowego wmplayera czy tez vplayera 2 minuty musze czekac na
film jak kiedys w kinie po kronice. Jak usunac ten problem nie wiem bo nie
chcialbym instalowac wszystkiego na nowo.
Hi.
Mam nastepujacy problem. Otwierajac praktycznie kazdy film zanim
zacznie sie odtwarzac 2 minuty probuje pobrac kodek ze strony
activex.microsoft.com po czym podaje ze nie znalazl ale film odtwarza
sie normalnie. Obojetnie czy uzyje microsoftowego wmplayera czy tez
vplayera 2 minuty musze czekac na film jak kiedys w kinie po kronice.
Jak usunac ten problem nie wiem bo nie chcialbym instalowac wszystkiego
na nowo.
Włączyć Windows Media Playera i w jego opcjach wyłączyć automatyczne
pobieranie kodeków. I porządnie instalować posiadane kodeki, nie
ograniczając się do prostego skopiowania plików. Robi się to z wiersza
poleceń np tak:
regsvr32 "c:Program Filesffdshowffdshow.ax"
Doxent <dox@gazeta.plwrote:
Mam nastepujacy problem. Otwierajac praktycznie kazdy film
zanim zacznie sie odtwarzac 2 minuty probuje pobrac kodek ze
strony activex.microsoft.com .
zainstaluj paczkę kodeków kazaa i po kłopocie
http://www.codec-archiv.de/progs/codecs/KLite/klcodec204f.exe
Dodaje do projektu plik aaa.htm - a w nim kilka bzdurek.
Potem dodaje kontrolke ActiveX Microsoft Exchange i robie:
Navigate("c:/katalogi..../aaa.htm", NULL, NULL.... - dziala
Navigate("res://aaa.htm", NULL, NULL, NULL... - nie dziala
Navigate("res://moj_program.exe/aaa.htm", NULL, NULL.... - nie dziala
Co robie nie tak, czy jakos powinienem zarejestrowac to resource?? Moze
jakas opcja linkera??
Mozecie pomoc?
Pozdrawiam
Lucasdm
po kolejnej nocy nad nieszczesna kontrolka ActiveX Microsoft Web doszedlem,
dlaczego proponowany przez Was kon jest "niestabilny". A mianowicie:
Zaladowanie kontrolki w postaci, jaka podaliscie w odpowiednim watku
wczesniej dziala, ale "zroznicowwanie". Tj. wywolanie zaladowania tekstu ze
stringa put_innerHTML powodowalo z niewiadomych przyczyn wlasciwy efekt
niekoniecznie za kazdym razem ;-). A juz zupelnie nieobliczalnie dzialalo
bezposrednio wywolane potem polecenie podgladu wydruku ExecWB(....).
Najczesciej wygladalo to tak, ze stona ze stringa sie ladowala, ale podglad
pokazywal stronke przed zaladowaniem ze stringa... i (uprzedzam rady) nie
pomagaly opoznienia wprowadzane miedzy tymi procesami.
Wszystko zaczelo dzialac poprawnie po "opuszczeniu" jednej linijki ladujacej
element CDispHTMLElementCollection. CDispHTMLBody pobieram bezposrednio z
dokumentu. W takiej konfiguracji wszystko smiga bez problemu:
CDispHTMLDocument doc(myWeb.get_Document());
///CDispHTMLElementCollection tt(doc.get_all());
CDispHTMLBody tt2(doc.get_body());
tt2.put_innerHTML("<a href='http://www.a.pl'agronom.pl</a");
myWeb.ExecWB(OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_DODEFAULT,NULL,NULL);
Dziekuje jeszcze raz wszystkim za pomoc i pozdrawiam
Lucasdm
Pelos
Lazy wrote:
| | | Czesc,
| Chcialbym prosic o pomoc. Pisze pod Visual C++ taki programik na
| magisterke.
| Jak spowodowac by zmienna typu VARIANT zaczela sie zachowywac jak
tablica
| ba
| jtow ?
| Moze nie rozumiem zasady dzialania takiej zmiennej...
| RTFM w msdnie wszystko jest wystarczy F1
| jak cesz zapisac bajt to odwoluj sie do zmiennatypuVariant.bVal jesli
| zapisujesz ustaw vt na VT_UI1 a jak cesz czytac to musisz najpierw
sprawdzic
| co zawiera vt a nastepnie czytaj to co trzeba ze stringami analogicznie
| tylko wskaznik jest w pbVal a flaga to VT_BYREF|VT_UI1
| No i jak te bajty pisac/czytac do/z takiej zmiennej.
| ____________________________________________
Mozna jak powyzej - ale to jest jak programowanie w assemblerze ;))
(wszystko dziala - tylko zamiast isc galopujesz na czworaka)
Albo uzyj (zamiast struktury VARIANT) klasy COleVariant - ona ma
wszystko co Ci potrzeba ;)))
Pozdrawiam
Lukasz Wilczynski
Pisze program w VC++ oparty na oknie dialogowym. Do komunikacji
przez port szeregowy uzylem kontrolki ActiveX Microsoft Communication
Control v6.00
Z inicjalizacja portu szer. nie mialem problemow lecz gdy zacząlem pisac
do portu
zauwazylem ze metoda SetOutput oczekuje jako parametru const VARIANT.
Mam dwa pytania czy ktos uzywal tej kontrolki w VC, oraz jak
przeprowadzic konwersje ze stringu textowego lub tablicy bajtowej do
VARIANT typu? (i vice-versa)
Adam
Witam,
Ktoś może wie co się dzieje z tą kontrolką ActiveX? Microsoft milczy, prawie
żadnej dokumentacji w msdn'ie, linki nie działają. Nawet wysłałem maila na
msscr@microsoft.com, ale ten wrócił (brak takiej skrzynki). Wycofali się?
Dlatego wolę konkurencję Open Source (spidermonkey). To nic że jest dane w
systemie. Nie wiem czy pomysł ci pasuje.
A może po prostu nie umiem znaleść takiej prostej rzeczy jak opis metod i
właściwości tego obiektu?
(Znam technologie Winsock, ATL, ActiveX Microsoft Visual Studio , Borland
C++ Builder,
oraz wiele innych, potrafie programowac zarowno dla wysokiego poziomu - user
interface - jak i kod assemblera dla sterownikow fabrycznych.Mam duza
praktyke)
Ewentualne oferty pracy prosze kierowac na adres darmochw@poczta.onet.pl
oraz pod telefon 314-19-82 oraz 503 860 409.
Interesuja mnie pilne oferty z wojewodztwa Slaskiego (z preferencja na
Katowice), zgodze sie na dosc niskie warunki finansowe ( jestem w tak zwanym
dolku)
Robert Darmochwal.
(prosze o pilne telefony)
UINT FunkcjaWatka(LPVOID pParam)
{
static i=1;
file://CImage* m_Image= (CImage*)pParam;
HMODULE cards=LoadLibrary("cards.dll");
HBITMAP card1=LoadBitmap(cards,MAKEINTRESOURCE(i++));
if (card1==NULL) MessageBox(NULL,"NULLL","LoadLibrary",MB_OK);
CPictureHolder pic1;
pic1.CreateFromBitmap(card1);
m_Image1-SetPicture(pic1.GetPictureDispatch());
m_Image1-Invalidate();
if(i==68) i=0;
return 0;
}
Ze zwykla funkcja chodzi doskonale natomiast z watkiem jest blad (wyjątek)
wychodzi gdy wywoływana jest funkcja
m_Image1-SetPicture(pic1.GetPictureDispatch());
activex image 2.0 potrzebny jest mi do zrobienia gry w karty niestety z
watkiem nie chodzi
i nie wiem dlaczego. Czego jeszcze można użyć do gry w karty microsoft forms
2.0 image
wydaje mi się najlepszy.
UINT FunkcjaWatka(LPVOID pParam)
{
static i=1;
file://CImage* m_Image= (CImage*)pParam;
HMODULE cards=LoadLibrary("cards.dll");
HBITMAP card1=LoadBitmap(cards,MAKEINTRESOURCE(i++));
if (card1==NULL) MessageBox(NULL,"NULLL","LoadLibrary",MB_OK);
CPictureHolder pic1;
pic1.CreateFromBitmap(card1);
m_Image1-SetPicture(pic1.GetPictureDispatch());
m_Image1-Invalidate();
if(i==68) i=0;
return 0;
}
Ze zwykla funkcja chodzi doskonale natomiast z watkiem jest blad (wyjątek)
wychodzi gdy wywoływana jest funkcja
m_Image1-SetPicture(pic1.GetPictureDispatch());
activex image 2.0 potrzebny jest mi do zrobienia gry w karty niestety z
watkiem nie chodzi
i nie wiem dlaczego. Czego jeszcze można użyć do gry w karty microsoft
forms
2.0 image
wydaje mi się najlepszy.
Pozdrowienia
Lucasdm
Kod HTML do tego wygenrowal mi FrontPage i podgralem to na serwer i na moim
kompie to poszlo. Ale na innych nie chcialo.
Wrzucilem na serwer tego ocx'a a do HTML'a dodalem w object znacznk codebase
podalem sciezke do tego ocx'a.
U mnie sie to uruchamia, a na innym testowanym kompie wywalilo podobno:
""OBECNE USTAWIENIA ZABEZPIECZEN UNIEMOZLIWIAJA URUCHAMIANIE FORMATOW
ACTIVEX NA TEJ STR!W WYNIKU TEGO MOZE BYC WYSWIETLANA NIEPOPRAWNIE"
Tak wiec, czy:
1) Skoro to jest std. kontrolka dostarczna z windows'em, to czy na innym
kompie mogla byc nie zarejestrowana pod tym samym classid?
2) Czy mimo, ze jest to standardowa kontrolka, to moze byc niepodpisana, ze
codebase jej nie sciagnal i nie zarejestrowal?
W mojej aplikacji (Visual C++ - dialog based) umieściłem komponent
ActiveX Microsoft Toolbar Control v 6.0 wszystko jest ok. działa, dodaje
przyciski, ale problem pojawia się gdy chcę dodać image do przycisku. W
oknie właściwości kontrolki są trzy rozwijane listy, w których można "niby"
wybrać ImageList, tylko teoretycznie, bo próbowałem dodawać na różne sposoby
ImageLists (obiekt klasy CImageList i ActiveX ImageList v6.0) i nic nadal
<None- czy może ktoś wie co muszę jeszcze zrobić, a może w jakiś inny
sposób dodać toolbar (chodzi mi o toolbar typu flat, z uaktywnianymi
przyciskami po umieszczeniu nad nimi wskaźnika myszy).
Jeżeli potrzebny byłby project (mogę go udostępnić na mojej stronie).
Bardzo pilne! Z Góry dzięki za pomoc.
Jarosław Łukaszewicz
bubuo@poczta.onet.pl wrote:
chyba ze gdzies jeszcze trzeba coś dodać...
bartek
a masz deklaracę ado w global.asa?
u mnie:
<!--METADATA NAME="Microsoft ActiveX Data Objects 2.5 Library"
TYPE="TypeLib" UUID="{00000205-0000-0010-8000-00AA006D2EA4}"--
Moja strona test.asp ma wczytac test2.asp. Nie ma wyswietlac zawartosci
test2.asp. Odczytac zawartosc strony test2.asp i podjac odpowiednie
dzialanie. Czy ktos wie jak to zrobic?
poczytaj o ADODB.Stream
msdn-platform sdk documentation-data services-microsoft activex data
objects(ado)-ado api reference-ado objects-stream object(ado),
a w szczególności o metodach
Open
Read
ReadText
Potrzebuje porady Makologa. Otoz na www jest sobie plugin z mikrositu -
cos w ten desen:
<object id='mediaPlayer'
classid='CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95'
codebase='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab...
standby='Loading Microsoft Windows Media Player components...'
type='application/x-oleobject'
<param name='fileName' value="<?php echo $strFileUrl ?" ref
valuetype="ref"
...
i tak dalej i tak dalej
No dobra, ale na Macu pokazuje sie ze tak brzydko powiem kupa...
Poniewaz maca i Safari widzialem do tej pory z daleka i przez ramie to
potrzebuje kogos, kto zna rozwiaznie uniwersalne tego problemu, ktore
pozwala serwowac w miare przyjaznie mp3-ki kazdemu...
Pozdr
ja
PS. Googlalem i googlam dalej ale nie moge trafic :/
<hikikomori@gazeta.plwrote:
Potrzebuje porady Makologa. Otoz na www jest sobie plugin z mikrositu -
cos w ten desen:
<object id='mediaPlayer'
classid='CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95'
codebase='http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab...
standby='Loading Microsoft Windows Media Player components...'
type='application/x-oleobject'
<param name='fileName' value="<?php echo $strFileUrl ?"
refvaluetype="ref"
...
i tak dalej i tak dalej
No dobra, ale na Macu pokazuje sie ze tak brzydko powiem kupa...
Mam 12 różnych przeglądarek na OS X, ale przystanę na to, że Mac = Safari
:P
<object data="test.mp3" width="300" height="30"
<param name="src" value="test.mp3"
<param name="controller" value="true"
</object
Jeśli plik ma być też ściągany, to dorzuć jeszcze obok link do mp3, bo
QuickTime czasem niepotrzebnie go broni.
Jeśli po dodaniu tego wewnątrz activexowego <objectExplorer będzie
wariował, to zastosuj ten sam hack co dla flasha:
http://osiolki.net/faq/flash
a co do Oxygena to proponuje jakas wersje do ktorej sa kejgeneratory bo tak
nic oprocz READ nie zdzialasz :)) wiem bo mam 3100 i oxygena wlasnie.
Program i keygen znajdizesz tu oraz troszke ciekawych rzeczy.....
http://www.n4r.glt.pl/
POzdrooo :)
prosze o to ten pliczek....
http://activex.microsoft.com/controls/vb6/msinet.cab otworz to archiwum i
tam jest ten pliczek :))
a co do Oxygena to proponuje jakas wersje do ktorej sa kejgeneratory bo
tak
nic oprocz READ nie zdzialasz :)) wiem bo mam 3100 i oxygena wlasnie.
Program i keygen znajdizesz tu oraz troszke ciekawych rzeczy.....
http://www.n4r.glt.pl/
POzdrooo :)
Dzieki WIEEEEEELKIE :) Nawet nie wiesz jak mi zycie ulatwiles. Jeszcze raz
dzieks :)
| Krotko mowiac... ograniczenie z korzystania tego serwisu jest czysto
| technologiczne a nie "marketingowe". A Ty... dorabiasz sobie do tego jakies
| ideologie na podstawie jakichs wlasnych domyslow.
Ze strony: http://www.opera.com/support/search/supsearch.dml?index=415
| ActiveX and VBScript support in Opera
|
| Platform: All platforms
|
| Opera does not support Microsoft's Windows-specific ActiveX technology
| or the VBScript scripting language.
|
| Last edited: 2005-03-09; Category: Supported features and
| specifications; Keywords: activex,microsoft,vbscript,; Index: 415
Więc wytłumacz mi dlaczego launch.com w Operze działa, i nie potrzeba w
niej nic instalować? =)
Niech zgadnę... dziura w Operze?
| Co do reklam, to oni wstawiają reklamy podczas słuchania muzyki.
| Jakoś nie chce mi się wierzyć, że to przypadek, szczególnie, że Firefox
| chyba jest teraz drugą przeglądarką po IE.
| Patrz wyzej. To nie przypadek. To brak zgody FF na potencjalne dziury w
| przegladarce. Tym bardziej mnie dziwi, ze Opera sie na to zgadza...
Oprócz instalacji pluginu ActiveX trzeba też spoofować inną przeglądarkę
aby móc używać serwisu.
No i? Czego to w sumie dowodzi?
On Sun, 19 Jun 2005 10:33:09 +0000 (UTC), Doktor wrote:
| Ze strony: http://www.opera.com/support/search/supsearch.dml?index=415
| | ActiveX and VBScript support in Opera
| | Platform: All platforms
| | Opera does not support Microsoft's Windows-specific ActiveX technology
| | or the VBScript scripting language.
| | Last edited: 2005-03-09; Category: Supported features and
| | specifications; Keywords: activex,microsoft,vbscript,; Index: 415
| Więc wytłumacz mi dlaczego launch.com w Operze działa, i nie potrzeba w
| niej nic instalować? =)
Niech zgadnę... dziura w Operze?
Opera dostaje po prostu inną stronę.
| Co do reklam, to oni wstawiają reklamy podczas słuchania muzyki.
| Jakoś nie chce mi się wierzyć, że to przypadek, szczególnie, że Firefox
| chyba jest teraz drugą przeglądarką po IE.
| Patrz wyzej. To nie przypadek. To brak zgody FF na potencjalne dziury w
| przegladarce. Tym bardziej mnie dziwi, ze Opera sie na to zgadza...
| Oprócz instalacji pluginu ActiveX trzeba też spoofować inną przeglądarkę
| aby móc używać serwisu.
No i? Czego to w sumie dowodzi?
No czego dowodzi? Dlaczego w Operze nie pojawia się taki sam komunikat jak
w FF?
Wszystkie gwiazdy na niebie wskazują, że serwis po prostu nie chce
użytkowników z FF, a dlaczego to można się tylko domyślać.
W artykule news:1127487921.057059.295360@o13g2000cwo.googlegroups.com,
niejaki(a): Użytkownik z adresu <michal.rzewu@interia.plnapisał(a):
Potrzebuję wyciągnąć dane bez otwierania skoroszytów. Znam tylko
zdefiniowaną nazwę (istnieje w każdym arkuszu). Nazwę skoroszytu
mam dzięki f-cji Dir. Brakuje mi natomiast nazw arkuszy.
Posłużenie się indeksem arkusza nie do końca rozwiązuje mój
problem ponieważ do identyfikacji danych potrzebuję nazwę arkusza z
jakiego pochodzą. F-cja Workbooks.Item("Zeszyt2.xls").Sheets(1).Name
działa tylko z otwartymi skoroszytami.
Czy ktoś ma jakiś pomysł....?
Jeżeli używasz Office w wersji przynajmniej 2000, to możesz posłużyć się ADO. Przykładowy kod wyświetlający nazwy arkuszy
wybranego skoroszytu może wyglądać następująco:
Sub test()
Dim cn As ADODB.Connection
Dim cat As ADOX.Catalog
Dim t As ADOX.Table
Dim RS As ADODB.Recordset
Dim pozycja As Integer
Dim plik As String
plik = "C:dane est.xls"
Set cn = New ADODB.Connection
cn.Open "Provider=MSDASQL.1;Data " _
& "Source=Pliki programu Excel;" _
& "Initial Catalog=" & plik
Set cat = New ADOX.Catalog
Set cat.ActiveConnection = cn
For Each t In cat.Tables
'ADO do nazwy arkusza dodaje na końcu znak "$"
pozycja = InStr(t.Name, "$")
'wyświetlamy nazwy kolejnych arkuszy
If pozycja 0 Then
MsgBox Left(t.Name, pozycja - 1)
End If
Next t
Set cat = Nothing
cn.Close
Set cn = Nothing
End Sub
Uwaga! W edytorze VBA, przy pomocy menu Tools-References, należy do projektu dodać odwołania do bibliotek:
"Microsoft ActiveX Data Objects 2.x" i "Microsoft ADO Ext. 2.x for DDL and Security"
Jak z excela pobrac wartość np. komórki A1 i po wciśnięciu
powiedzmy przycisku "OK" dodać wartość tej komórki do zwykłej bazy
danych w accessie ?
Sub WstawDoBazy()
''' UWAGA: Ten podprogram wymaga odwołania do następujących
''' bibliotek:
'''
''' Microsoft ActiveX Data Objects 2.0 Library
Dim conn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim looprange As Range
Dim currcell As Range
With conn
' Ustawienie usługodawcy OleDB dla połączenia.
.Provider = "Microsoft.JET.OLEDB.4.0"
' Otworzenie połączenia z plikiem Northwind.mdb.
.Open Application.Path & "samples
orthwind.mdb"
End With
With rst
.ActiveConnection = conn
' Otworzenie nowej tabeli. Argument LockType metody
' Open musi być ustawiony na adLockOptimistic, aby
' dodać rekordy do tabeli.
.Open "TabelaSprzedaży", LockType:=adLockOptimistic
End With
With rst
' Dodanie dowego rekordu.
.AddNew
.Fields("Nazwa").Value = Range("A1")
' Zapisanie nowego rekordu do bazy danych.
.Update
End With
rst.Close
conn.Close
End Sub
Janusz
Dzięki za pomoc.
Niestety deklaracja: Dim db As Database działa tylko na jednym pliku pomimo
że nie zmieniam żadnych ustawień w Accesie. Wygląda to tak jakby gdzieś w
pliku bazy siedziała informacja o podłaczaniu do ADO.
Odnośnie :Dim db As Database....
W nowszych wersjach MS Access w projekcie VBA defaultową referencją jest
Microsoft ActiveX Data Objects 2.X Library (poprzednio było DAO !!!!!) i
dlatego jeśli chcemy korzystać w obiektów DAO , a taki jest obiekt Database
czy Recordset który np otrzymujemy jako wynik operacji
CurrentDb.OpenRecordset możemy zrobić, a właściwie musimy, jedną z 3-ch
następujących rzeczy
1. Dodać referencję w projekcie do Microsoft DAO 3.X Object Library, a linijka
kodu deklaracji powinna wówczas wygladać następująco:
Dim db As DAO.Database
Dim rst As DAO.Recordset
2. Dodać referencję w projekcie do Microsoft DAO 3.X Object Library oraz
jednocześnie usunąć referencję do Microsoft ActiveX Data Objects 2.X Library a
linija kodu deklaracji może wówczas wygladać następująco :
Dim db As Database
Dim rst As Recordset
albo
Dim db As DAO.Database
Dim rst As DAO.Recordset
3. Zadbać o to aby refrecje w projekcie w okienku referencji były w kolejności
jak :
najpierw
Microsoft DAO 3.X Object Library
a potem dopiero
Microsoft ActiveX Data Objects 2.X
a linijka kodu deklaracji może wówczas wygladać następująco :
Dim db As Database
Dim rst As Recordset
albo
Dim db As DAO.Database
Dim rst As DAO.Recordset
czyli w każdym przypadku bezpieczniej jest użyć jednak deklaracji
Dim rst As DAO.Recordset
i w każdym przypadku trzeba w Tools/Reference sprawdzić czy jest referencja do
Microsoft DAO 3.X Object Library, przy braku dodać....
Grzesiek B wrote:
| Tak prozaiczne rzeczy powinieneś wiedzieć wysyłając klientowi bazę.
...
| W tej sytuacji sam zainstaluj sobie Access'a 2000, popraw bazę i wyślij
| klientowi. Wypadałoby też wiedzieć jaki software i sprzęt posiada klient
dla
| którego piszesz bazę. Z porad poleciłbym Ci również częstsze czytanie
grupy.
Dzięki za rady, które przyjąłem z pokorą
O tego typu problemach nie miałem pojęcia - bo i skąd: nie zajmuję się
zawodowo pisaniem baz w Accessie i nie mam w kompie zainstalowanych
wszystkich_możliwych_wersji_Office
Na szczęście, nie jest to baza pisana dla klienta, tylko baza pisana
przeze mnie dla siebie i wspólpracowników.
Po prostu wyślę gościowi instalkę Office 97 :)))
Dzięki za info - podejrzewałem, że problem jest mniej banalny niż
konflikt wersji i wolałem się upewnic.
Jeżeli to baza dla Ciebie i współpracowników, to możesz po przesłaniu bazy w
wersji 97 na telefon wytłumaczyć klientowi (współpracownikowi) co ma zrobić
w Accessie 2000, aby mu to być może zadziałało. Po pierwsze - wyślij plik w
wersji mdb. Potem poinstruuj gościa tak:
1. po uruchomieniu A2k zapyta Cię, czy chcesz uruchomić w wersji 97 czy
przekonwertować do A2000 - przekonwertować (zapisując pod jakąś inną nazwą)
2. po uruchomieniu przekonwertowanej bazy należy dostać się do okna bazy
danych (np. trzymając Shift przy uruchomieniu, jeśli jest jakiś autostart)
3. kliknąć na "moduły"
4. wejść do jakigokolwiek modułu (albo kodu formularza) aby otworzyło się
okno edytora VBA
5. w menu "tools" submenu "references" na liście znależć i odzaznaczyć
"Microsoft ActiveX Data Objects 2.1 Libbary"
6. w menu "tools" submenu "references" na liście znależć (trochę niżej) i
zaznaczyć "Microsoft DAO 3.6 Object Library"
7. zamknąć, zapisać i uruchomić jeszcze raz
Jest szansa, że zadziała, ale jest również szansa, że niestety nie ... :-)
pozdrawiam
Robert
OK. Krytykę przyjąłem.
Znalazłem błąd - nie włączone DAO.
Włączyłem - poszedł dalej i stanął na linii:
Set MySet = MyDb.OpenRecordset("ExpArray", DB_OPEN_DYNASET)
wywalając błąd: Type mismatch
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
Typ Recordset występuje w dwóch wykorzystywanych przez
Ciebie bibliotekach: ADO i DAO, pod tą samą nazwą
ale różni się trochę ( metody, właściwości, itp).
Aby wsazać kompilatorowi który chcesz używać powinieneś
deklarować konkretnie:
Dim rs As DAO.Recordset
lub
Dim rs As ADODB. Recordset
Z tego co piszesz w Twoim kodzie używany jest DAO.
Rozwiązania problemu:
1. Jeśli nie używasz wyrzuć ADO (Microsoft ActiveX Data ...)
z referencji; lub
2. Zmień kolejność bibliotek w okienku referecji (strzałeczki
z boku - priority) Kompliator bierze typ z pierwszej biblioteki
napotkanej. Teraz masz ADO przed DAO, zmień żeby DAO
było "wyżej" - nad ADO; lub
3. Dopisz wszędzie w kodzie przy odwołaniu do typu rekordset
przedrostek : DAO. lub
....
Podobne problemy możesz mieć z innymi typami...
Prawdopodobnie utworzyłeś pustą bazę i zaimportowałeś obiekty
ze starszej wersji. Przy tworzeniu nowej bazy Accessy 9 i 10
domyślnie dołączają w referencjach tylko ADO ( DAO jest na
wylocie).
Gdybyś przekonwertował bazę ze starszej wersji referencje
miałbyś OK.
Pozdrawiam
SWid
No i co? Nie czytacie, Kolego, wystarczająco uważnie! :))
| [...]
|
| Zajrzałem do Tools References ... ale nie wiem do czego referencje
| mogły mi sie urwać. Jak sprawdzić, które referencje są mi potrzebne.
| Pewnie to abecadło VB, ale ja niestety jestem cieńki.
| Podpowiesz jeszcze co nieco :-)
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.
Jeśli automatyzujesz pracę z Excelem lub Wordem, będziesz potrzebował
odpowiedniego odwołania do każdej z tych aplikacji, czyli np. pod a'2003
"Microsoft Excel 11.0 Object Library" i/lub "Microsoft Word 11.0 Object
Library". Oprócz tego mnie się zdarza używać odwołania do "Microsoft XML (tu
nr wersji)". Poza tym staram się z referencjami nie szaleć.
Nie wiem po jaką cholerę Access sam dodaje "OLE Automation" przy tworzeniu
pustej bazy. Staram się to usuwać, bo jak dotąd nie spotkałem się z potrzebą
wykorzystania tej referencji. Zauważyłem też, że w niektórych - na szczęście
rzadkich ! - sytuacjach gryzie się ona z DAO, tzn. trzeba pamiętać, aby
odwołanie do DAO było wyżej niż odwołanie do "OLE Automation" (o ile tę
ostatnią zdecydowaliśmy się jednak pozostawić).
Po jakiejkolwiek zmianie w referencjach wykonaj Debug -Compile.
Jeśli przeniosłeś bazę na inny komputer, na którym jest inna wersja MS
Access i inne biblioteki na dysku, może okazać się, że referencje się
"urwały" - na liście referencji widać je wtedy jako "MISSING". Przy prostych
operacjach wystarczy często podpięcie odwołań do bibliotek w dostępnych
wersjach - np. w przypadku mało skomplikowanej automatyzacji dla kodu VBA
bez znaczenia jest, czy podpięliśmy "Microsoft Word 11.0 Object Library" czy
"Microsoft Word 9.0 Object Library".
Więcej na ten temat znajdziesz w archiwum Grupy.
Pozdrawiam,
Krzysiek
(...)
|| Zajrzałem do Tools References ... ale nie wiem do czego referencje
|| mogły mi sie urwać. Jak sprawdzić, które referencje są mi potrzebne.
| Standardowo wystarczą Ci:
| - Visual Basic For Applications (zawsze podpięty)
| - Microsoft Access (tu nr wersji) Object Library (jw)
kropka! Tylko powyższe dwie referencje są obowiązkowe i nie da się ich
odhaczyć
| - Microsoft DAO 3.6 Object Library
| lub:
| - Microsoft ActiveX Data Objects (tu nr wersji) Library
te owszem, o ile rzeczywiście w kodzie ktoś odwołuje sie do ich obiektów
dostępu do danych.
Ktoś kto dopiero zaczyna zabawę z accessem zwykle nie korzysta z żadnych
recordsetów itd.
Ale odpowiedni kawałek kodu może wygenerować kreator ...
| albo obydwie, jeśli korzystasz z DAO i ADO równocześnie.
ja bym raczej nie przesadzał ...
Do DAO mozna się odwołać niejawnie, więc po co mieszać dwie biblioteki.
Fakt jednak, ze w A'2003 standardowo obydwie biblioteki są zahaczone ...
| Jeśli automatyzujesz pracę z Excelem lub Wordem, będziesz potrzebował
| odpowiedniego odwołania do każdej z tych aplikacji, czyli np. pod a'2003
| "Microsoft Excel 11.0 Object Library" i/lub "Microsoft Word 11.0 Object
| Library".
Generalnie cos takiego mozna robić jedynie mając pewność, że na docelowym
komputerze znajduje się taka a nie inna aplikacja, takiej a nie innej
wersji ...
Dużo lepszym rozwiązaniem jest późne wiązanie.
Oczywiście na czas pisania kodu warto właściwą referencję ustawić, ale
przed kompilacją warto bezpośrednie odwołanie do biblioteki zastąpić
funkcją GetObject(), a wszystkie "wordowskie" czy "excelowskie" typy
zastąpić ogólnym Object.
Wtedy nie będzie Cie głowa bolała czy na komputerze jest word'95 czy word
2003 ...
A nawet obsłuzysz błąd jeśli nie ma go wcale !
| Nie wiem po jaką cholerę Access sam dodaje "OLE Automation" przy
| tworzeniu pustej bazy. Staram się to usuwać, bo jak dotąd nie spotkałem
| się z potrzebą wykorzystania tej referencji.
Też nie wiem po co. Biblioteka jest niewielka, zawiera raptem dwa obiekty:
Picture i Font
Jak ktoś bawi się grafikami to niewątpliwie będzie użyteczna w pewnych,
poza typowo accessowymi, zastosowaniach.
(np. zdaje się BraZby często z niej korzysta)
Rzuc okiem na klucz:
HKEY_CLASSES_ROOTTypeLib{00000300-0000-0010-8000-00AA006D2EA4}
To jest "Microsoft ActiveX Data Objects Recordset x.y Library"
i mam w mdb2k referencje do niej. W tej chwili mam na swoim komouterze
wersje 2.6. Powiedzmy, ze system z a97 bedzie mial wersje 2.1.
Jak myslisz, czy po konwersji mdb2k do mdb97 i otwarciu go na
systemie z a97 referencje beda skorygowane do nizszej wersji ?
(Sprawdze jak dotre do domu).
No i dupa. Mimo, ze na systemie z a97 jest zainstalowana
w/w biblioteka w wersji 2.1 (ta sama wartosc GUID):
REGEDIT4
[HKEY_CLASSES_ROOTTypeLib{00000300-0000-0010-8000-00AA006D2EA4}]
[HKEY_CLASSES_ROOTTypeLib{00000300-0000-0010-8000-00AA006D2EA4}2.1]
@="Microsoft ActiveX Data Objects Recordset 2.1 Library"
[HKEY_CLASSES_ROOTTypeLib{00000300-0000-0010-8000-00AA006D2EA4}2.1 ]
[HKEY_CLASSES_ROOTTypeLib{00000300-0000-0010-8000-00AA006D2EA4}2.1 win32]
@="C:\Programme\Gemeinsame Dateien\System\ADO\MSADOR15.DLL"
[HKEY_CLASSES_ROOTTypeLib{00000300-0000-0010-8000-00AA006D2EA4}2.1FLAGS]
@="0"
[HKEY_CLASSES_ROOTTypeLib{00000300-0000-0010-8000-00AA006D2EA4}2.1HELPDIR]
@="C:\Programme\Gemeinsame Dateien\System\ADO\"
to access nie potrafi wyprostowac referencji. To samo w przypadku
MSXML2 (na systemie acc2k byla wersja 4.0):
REGEDIT4
[HKEY_CLASSES_ROOTTypeLib{F5078F18-C551-11D3-89B9-0000F81FE221}]
[HKEY_CLASSES_ROOTTypeLib{F5078F18-C551-11D3-89B9-0000F81FE221}3.0]
@="Microsoft XML, v3.0"
[HKEY_CLASSES_ROOTTypeLib{F5078F18-C551-11D3-89B9-0000F81FE221}3.0 ]
[HKEY_CLASSES_ROOTTypeLib{F5078F18-C551-11D3-89B9-0000F81FE221}3.0 win32]
@="C:\WINNT\System32\msxml3.dll"
[HKEY_CLASSES_ROOTTypeLib{F5078F18-C551-11D3-89B9-0000F81FE221}3.0FLAGS]
@="0"
[HKEY_CLASSES_ROOTTypeLib{F5078F18-C551-11D3-89B9-0000F81FE221}3.0HELPDIR]
@="C:\WINNT\System32"
Jakby ktos chcial potestowac, pliki ref2k.mdb i skonwertowany do 97
ref97.mdb mozna znalezc na
http://www.posmykowizna.de/access/ref.zip
Moze to ja cos mieszam. Mam dzis zly dzien !
Ciao, Smyk
W Accesie 2000 używając ADO pobieram dane z SQL Serwera.
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?
Jezeli sie dobrze domyslam, twoj problem polega na tym, ze nie deklarujesz
odpowiednio obiektow Recorset.
A w sytuacji gdy uzywasz obu bibliotek (DAO i ADO) powinienes jawnie
oznaczyc o ktory typ ci chodzi.
W ADO powinno to wygladac tak:
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cn =CurrentProject.Connection
Set rs = New ADODB.Recordset
rs.Open "tabela", cn, , , adCmdTable
Natomiast w DAO w nastepujacy sposob:
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("tabela")
Jezeli NIE bedziesz deklarowal w powyszy sposob bedziesz sie zawsze
odwolywal do biblioteki, ktora ma priorytet w Referencjach czyli figuruje na
liscie odwolan jako pierwsza (wczesniej). Wtedy moze sie zdarzyc ze masz
blad Type mismach, poniewaz przy przypisaniu obiektu do zmiennej; np do
zmiennej typu recorset ADO probujesz uzyc nieodpowiedniej metody, w tym
wypadku CurrentDb.
-------
Piotr Chlabicz
| 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.
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ć ;-)
Dokładniej ta:
W nowszych wersjach MS Access w projekcie VBA defaultową referencją jest
Microsoft ActiveX Data Objects 2.X Library (poprzednio było DAO) i dlatego
jesli chcemy korzystać w obiektów DAO , no Recordset DAO możemy zrobić, a
właściwie musimy, jedną z 3-ch następujących rzeczy
1. Dodać referencję w projekcie do Microsoft DAO 3.X Object Library, a linija
kodu deklaracji powinna wówczas wygladać następująco:
Dim rst As DAO.Recordset
2. Dodać referencję w projekcie do Microsoft DAO 3.X Object Library oraz
jednocześnie usunąć referencję do Microsoft ActiveX Data Objects 2.X Library a
linija kodu deklaracji może wówczas wygladać następująco :
Dim rst As Recordset
albo
Dim rst As DAO.Recordset
3. Zadbać o to aby refrecje w projekcie w okienku referencji były w kolejności
jak :
najpierw
Microsoft DAO 3.X Object Library
a potem dopiero
Microsoft ActiveX Data Objects 2.X
a linijka kodu deklaracji może wówczas wygladać następująco :
Dim rst As Recordset
albo
Dim rst As DAO.Recordset
czyli w każdym przypadku bezpieczniej jest użyć jednak deklaracji zprefiksem
DAO
Dim rst As DAO.Recordset
Usunalem wpisy z tabel, ale jezeli wpisuje nowa osobe do bazy to nadal
autonumeruje od nr 19 a nie od 1 . Jak to usunac ?
Pisałam już tą notatkę, ale nie mogę jej odnaleźć w wyszukiwarce, widocznie
coś „mi nie wyszło”. Z góry przepraszam Panowie strasznie zazwyczaj
krzyczą... aż strach coś napisać...otóż na stronie
http://www.liquorman.net/Tips.html znalazłam aplikację, która umożliwia
resetowanie pola autonumerowanego przy pomocy ADOX. Nie trzeba korzystać z
całej tej aplikacji, można wykorzystac funkcję ChangeSeedADOX, zamieszczona
poniżej. Podalam też przykładowe wywołanie....
'''' przykładowe wywołanie
Function ResetAutonumer()
'''' Referencje do Microsoft DAO 3.6 Object Library
Dim oDB As DAO.Database
Set oDB = CurrentDb
Dim sNazwaTabeli As String
sNazwaTabeli = "danewykresu"
'''' usuwanie rekordów tabeli
oDB.Execute ("DELETE * FROM " & sNazwaTabeli & ";")
'''' usatwienie pola autonumerowanego
Call ChangeSeedADOX(oDB.Name, sNazwaTabeli, "Identyfikator", 1)
End Function
Public Function ChangeSeedADOX(strDB As String, _
strTbl As String, _
strCol As String, _
lngSeed As Long) As Boolean
'''' http://www.liquorman.net/Tips.html
'''' strTbl = tabela zawierajaca pole autonumerowane
'''' strCol = nazwa autonumerowanego pola
'''' lngSeed = Long integer wartośc jaką chcesz użyć jako początową
'''' dla pola autonumerowanego
'''' Referencja do Microsoft ActiveX Data Objects 2.X
'''' Referencja do Microsoft ADO Ext 2.x for DDL and Security Libraries
Dim cnn As ADODB.Connection
Dim cat As New ADOX.Catalog
Dim col As ADOX.Column
Dim strcnn As String
'''' ustalenie połączenia
Set cnn = CurrentProject.Connection
cat.ActiveConnection = cnn
Set col = cat.Tables(strTbl).Columns(strCol)
col.Properties("Seed") = lngSeed
cat.Tables(strTbl).Columns.Refresh
If col.Properties("Seed") = lngSeed Then
ChangeSeedADOX = True
Else
ChangeSeedADOX = False
End If
Set col = Nothing
Set cat = Nothing
Set cnn = Nothing
End Function
RTFF!
Poza tym juz to bylo przerabiane nie dalej jak 27.05
Zanim wyslesz poczytaj inne posty!
BarneyG :o)]
Przepraszam Panowie, ale ponieważ i ja szukałam tego tematu i nie znalazłam
nic co by mnie zadowalało, pozwolę sobie przytoczyć rozwiązanie na podstawie
strony http://www.liquorman.net/Tips.html. Nie trzeba całej przytoczonej tam
aplikacji wystarczy funkcja ChangeSeedADOX
Public Function ChangeSeedADOX(strDB As String, _
strTbl As String, _
strCol As String, _
lngSeed As Long) As Boolean
''''strTbl = tabela zawierajaca pole autonumerowane
''''strCol = nazwa autonumerowanego pola
''''lngSeed = Long integer wartośc jaką chcesz użyć jako początową
''''dla pola autonumerowanego
'''' Referencja do Microsoft ActiveX Data Objects 2.x
'''' Referencja do Microsoft ADO Ext 2.x for DDL and Security Libraries
Dim cnn As ADODB.Connection
Dim cat As New ADOX.Catalog
Dim col As ADOX.Column
Dim strcnn As String
'''' ustalenie połączenia
Set cnn = CurrentProject.Connection
cat.ActiveConnection = cnn
Set col = cat.Tables(strTbl).Columns(strCol)
col.Properties("Seed") = lngSeed
cat.Tables(strTbl).Columns.Refresh
If col.Properties("Seed") = lngSeed Then
ChangeSeedADOX = True
Else
ChangeSeedADOX = False
End If
Set col = Nothing
Set cat = Nothing
Set cnn = Nothing
End Function
'''' przykładowe wywołanie
Function ResetAutonumer()
'''' Referencje do Microsoft DAO 3.6 Object Library
Dim oDB As DAO.Database
Set oDB = CurrentDb
Dim sNazwaTabeli As String
sNazwaTabeli = "danewykresu"
'''' usuwanie rekordów tabeli
oDB.Execute ("DELETE * FROM " & sNazwaTabeli & ";")
'''' usatwienie pola autonumerowanego
Call ChangeSeedADOX(oDB.Name, sNazwaTabeli, "Identyfikator", 1)
End Function
Sorki, nie krzyczcie tylko, jeśli to rozwiązanie gdzieś w archiwum jest,
bardzo proszę, zresztą na kobietę nie wypada...
Tak często się pouczacie, aż strach coś napisać, sorki jeszcze raz za uwagę
również... Karolina
dim con as adodb.connection
Set con = CurrentProject.Connection
con.execute " tutaj wklej SQL"
a potem kolejne
con.execute " wklej i zmień nazwę tabeli z której bedziesz pobierać dane"
jeżeli chodzi o przechodzenie z acc2000 na 97 to w przypadku jeżeli w
procedurach korzystasz z obiektó dostępun do danych typu recordset i inne to
w A2000 domyślnie używane jest do tego ADO a w 97 DAO.
Można w domowym komputerze po przeniesieniu bazy otworzyć ją w trybie
projektowania i dodać w referencjach "Microsoft ActiveX Data Objects 2.xx".
Jeśli nie masz podobnego wpisu w referencjach to musisz zainastalować MDAC w
wersji 2.5 lub 2.6. Ważne jest też żeby ADO było ustawione przed DAO na
liście referencji.
Użytkownik "Magdalena Krajewska" <madz@panda.bg.univ.gda.plnapisał w
wiadomości
Mam baze w ktorej jest 20 tabel. chcialabym polaczyc je w jedna calosc.
czy
mozna zrobic to za pomoca jakiejs sprytnej formuly w VB, a nie 'na
piechote'
za pomoca kwerendy dolaczajacej? bo o ile sie orientuje za pomoca tej
kwerendy mozna na raz dolaczac tylko 1 tabele. (moze nie mam racji:)
I druga sprawa... mam problem w konwertowaniu accessa 2000 na accessa 97.
W
assesie 2000 wszystko chodzi super. w 97 tabele sa, formularze sa i sie
wydaje wszystko pieknie, ale wystepuja bledy podczas uruchomiania
formularza, w ktorym sa procedury (procedury pomagaliscie mi napisac,
dotyczyly imion roznych osob wklepujacych dane). moze to normalne i sie
musze uwstecznic instalujac w domu 97...
pozdrowionka
magda
madz@zaspa.multicon.pl
Ok. To tyle. Za wszelkie zainteresowanie moimi pytankami z góry serdeczniue
dziekuje. Pozdrawiam - gRabbi
Kilka takich znalazłem przy
czym nie podoba mi się iż do ich instalacji trzeba używać gotowych
instalatorów (.msi) a nie widzę możliwości zainstalowania takiego sterownika
z poziomu instalatora progarmu który ma go wykorzystywać (czyli ja pisze
jakiś program naprzykład w VC,jego instalator instaluje też sterownik ADO
np.Oracle, powiedzmy wrzucająć gdzieś jakiegoś dll`a + kilk awpisów do
rejstru i po instalacji całość funguje) Czy coś takiego jest tutaj możliwe?
Oczywiście, że jest możliwe - szczegóły w danym narzędziuu do robieni
instalek.
2. Frapuje mnie jeszcze jedna sprawa. W VBA z Excelu napotkałem możliwość
dorzucenia referencji do modułu "Microsoft ActiveX Data Objects 2.7". Co to
jest? Czy jakiś uniwersalny sterownik ADO? Jak to wykorzystać?
To jest ADO w wersji 2.7, bo ADO to właśnie ActiveX Data Objects, a że
to technologia MS, to sam widzisz...
3. Na jakiejś tam stronce (www.connectionstrings.com)
znalazłem listę connection stringów ADO do różnych baz, np.:
Oracle - "Provider=msdaora;Data Source=MyOracleDB;User
Id=UserName;Password=asdasd;"
Mysql - "Provider=MySQLProv;Data Source=mydb;User
Id=UserName;Password=asdasd;"
Pytanie: o co chodzi z tym DataSource? Gdzie zdefiniować nazwę źródła danych
dla tych baz? Logiucznieje było by dla mnie podawanie np. IP i portu
serwera. Moglibyście mi wytłumaczyc czemu jest tak a nie inaczej?
DataSource, to źródło danych - np. dla Serwera SQL to zazwyczaj adres IP
(lub nazwa), dla ISAM będzie to katalog z tabelkami.
http://msdn.microsoft.com/data/Default.aspx
---
wloochacz
Tomekl
Czy jest jakiś dobry darmowy komponent do wyswietlania stron www na Delphi
5
standart
Szukałem na stronach Microsoftu, ale niestety bez rezultatów.
Zaimportuj kontrolkę ActiveX "Microsoft Internet Controls"
<script type="text/javascript"
function SaveFile(source) {
var nn=document.layers;
var ie=document.all;
var path, file;
if(ie) {
var FSO=new ActiveXObject("Scripting.FileSystemObject");
CommonDialog.ShowOpen();
path=CommonDialog.FileName;
if(!FSO.FileExists(path)) {
file=FSO.createTextFile(path);
}
else {
file=FSO.openTextFile(path, 2); // nie jestem pewien co do
kolejnosci atrybutow, jakby cos, to zapisz je odwrotnie
}
file.write(source);
file.close();
}
else if(nn) {
netscape.security.PrivilegeManager.enablePrivilege("UniversalFileWrite");
var frame=new java.awt.Frame();
var dialog=new java.awt.FileDialog(frame, "Zapisz jako...",
java.awt.FileDialog.SAVE);
dialog.toFont();
dialog.show();
path=dialog.getDirectory() + dialog.getFile();
var outputStream=new java.io.FileOutputStream(path);
var file= new
java.io.BufferedWriter(java.io.OutputStreamWriter(outputStream));
file.write(source);
file.flush();
file.close();
outputStream.close();
}
}
</script
W sekcji BODY dodaj:
<OBJECT ID="CommonDialog" WIDTH="0" HEIGHT="0"
CLASSID="clsid:F9043C85-F6F2-101A-A3C9-08002B2F49FB"
CODEBASE="http://activex.microsoft.com/controls/vb5/comdlg32.cab"
</OBJECT
Jak pewnie zauwazyles, funkcje wywoluje sie przez podanie do niej tresci
pliku. Jakby cos nie dzialalo (nie testowalem skryptu), to napisz.
Pozdrawiam
Michal
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.338 / Virus Database: 189 - Release Date: 02-03-14
© 2009 Najlepszy miesiąc kawalerski w Polsce !!! - Ceske - Sjezdovky .cz. Design downloaded from free website templates