"Microsoft Jet database engine stoped the process because you and other user
are attempting to change the same data at the same time".
Jesli w tym samym katalogu co plik <nazwa.MDE
istnieje plik <nazwa.LDB, to nalezy go wymazac
i sprobowac ponownie.
Ciao, Smyk
Przeczytaj wszystkie posty z tego wątku
On 15.12.2003 22:02, Agnieszka Polowczuk schrieb:
| "Microsoft Jet database engine stoped the process because you and other
user
| are attempting to change the same data at the same time".
Jesli w tym samym katalogu co plik <nazwa.MDE
istnieje plik <nazwa.LDB, to nalezy go wymazac
i sprobowac ponownie.
Ciao, Smyk
Przeczytaj wszystkie posty z tego wątku Przeniosłem bazę z jednego kompa na drugiego. Baza jest zabezpieczona
na poziomie użytkownika. Po dołączeniu nowej grupy roboczej i próbie
otwarcia pliku wyskakuje mi coś takiego "Cannot open the Microsoft Jet
engine workgroup information file."
Czy ktoś mi może pomóc?
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection <lub Set conn = CurrentProject.Connection
With conn
.Provider = "Microsoft.Jet.OLE.DB.4.0"
.ConnectionString = "data source= sciezka_do_bazy_danych.mdb" & _
"; Jet OLEDB:Database Password= tu_haslo
" & _
"; OLEDB:System database=
sciezka_do_pliku.mdw"
.Open
End With
Pozdrawiam,
Grony
Witam,
Jak otworzyc w Visual Basicu baze danych Accesa, ktora posiada plik z
uprawnieniami. Tzn. Baza nazywa sie moja.mdb i w tym samym katalogu mam
plik
upraw.mdw z uprawnieniami do bazy danych.
W samym akcesie otwiera sie bez problemow:
msaccess /wrkgrp upraw.mdw (potem podaje juz w Akcesie uzytkownika i haslo
i
wybieram plik moja.mdb i pieknie sie otwiera)
Ale nie wiem jak zrobic to samo z poziomu Visual Basic. Trzeba uzyc
obiektu
DBEngine ale cos mi nie wychodzi.
Uzytkownik i haslo sa jak najbardziej poprawne bo Access jeprzyjmuje.
Prosze o te kilka linijek kodu
Pozdraiwm
Jarek
"six" <s@op.plwrote in message Witam
mam następujący problem, chciałem za pomocą Recordset przeszukać tabelę
pracownicy i wybrać odpowiednie wartości w polach do dalszych
aktualizacji.
Nie mam pojęcia jak się do tego zabrać w helpie znalazłem coś o DAO i
ADODB
(tematów tam sporo ale się nie otwierają).
Możecie mi podać jakieś wskazówki jak to zainicjować i przeglądać tabelę,
może jakieś linki do stron na ten temat.
w VB6 będzie to wyglądało tak (dla ADO):
Dim ADO_con As New ADODB.Connection
Dim ADO_rst As New ADODB.Recordset
ADO_con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=baza.mdb"
ADO_con.Open
ADO_rst.Open "SELECT * FROM [TABELA]", ADO_con, adOpenKeyset,
adLockReadOnly, adCmdText
'czytanie z recordsetu
Zmienna = ADO_rst!Pole
'zapis do recordsetu
ADO_rst!Pole = Zmienna
ADO_rst.Update
'poruszanie sie po recordsetach
ADO_rst.MoveFirst
ADO_rst.MoveNext
ADO_rst.MovePrevious
ADO_rst.MoveLast
ADO_rst.Close
ADO_con.Close
możesz też użyć kontrolek powiązanych takich jak Adodc, DataGrid, MSChart i
innych
"six" <s@op.plwrote in message | Witam
| mam następujący problem, chciałem za pomocą Recordset przeszukać tabelę
| pracownicy i wybrać odpowiednie wartości w polach do dalszych
aktualizacji.
| Nie mam pojęcia jak się do tego zabrać w helpie znalazłem coś o DAO i
ADODB
| (tematów tam sporo ale się nie otwierają).
| Możecie mi podać jakieś wskazówki jak to zainicjować i przeglądać tabelę,
| może jakieś linki do stron na ten temat.
w VB6 będzie to wyglądało tak (dla ADO):
Dim ADO_con As New ADODB.Connection
Dim ADO_rst As New ADODB.Recordset
ADO_con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=baza.mdb"
ADO_con.Open
ADO_rst.Open "SELECT * FROM [TABELA]", ADO_con, adOpenKeyset,
adLockReadOnly, adCmdText
'czytanie z recordsetu
Zmienna = ADO_rst!Pole
'zapis do recordsetu
ADO_rst!Pole = Zmienna
ADO_rst.Update
'poruszanie sie po recordsetach
ADO_rst.MoveFirst
ADO_rst.MoveNext
ADO_rst.MovePrevious
ADO_rst.MoveLast
ADO_rst.Close
ADO_con.Close
możesz też użyć kontrolek powiązanych takich jak Adodc, DataGrid, MSChart i
innych
Mozna jeszcze dodawac rekordy
ADO_rst.AddNew
i po uzupelnieniu pol
ADO_rst.Update
Pozdrawiam
RM
Nie moge wejsc do mojej bazy.
Access pisze:
Aparat bazy danych Microsoft Jet zatrzymał proces, ponieważ inny użytkownik
prubuje zmienić te same dane.
Co robić?
Nie ma pliku ldb. Ktoś wyłączył komputer podczas działania. Teraz nie mogę się
dostać do bazy
Użyj standardowej opcji naprawy bazy. Jeżeli to nie pomoże, popróbuj
odpalić accessa i bazę z parametrem /decomplie (prawdę rzekłszy nigdy
nie próbowałem).
Jeżeli i to nie pomoże, spróbuj zaimportować wszystko do nowej bazy. W
tym momencie, jeżeli baza była zabezpieczona na poziomie uzytkownika: do
ponownego ustanowienia uprawnień możesz popróbować Security Mover'a
(będzie okazja go przetestować ;-) chociaż jeżeli baza źródłowa jest
padnięta, to chyba nic z tego nie wyjdzie...).
Jeśli i to nie pomoże - odtwórz bazę z backupu ;-)
Pozdrawiam -
Stanley
http://msaccess.of.pl
b.st@strus.com.pl napisał(a):
| Nie moge wejsc do mojej bazy.
| Access pisze:
| Aparat bazy danych Microsoft Jet zatrzymał proces, ponieważ inny użytkownik
| prubuje zmienić te same dane.
| Co robić?
| Nie ma pliku ldb. Ktoś wyłączył komputer podczas działania. Teraz nie mogę
się
| dostać do bazy
Użyj standardowej opcji naprawy bazy. Jeżeli to nie pomoże, popróbuj
odpalić accessa i bazę z parametrem /decomplie (prawdę rzekłszy nigdy
nie próbowałem).
Jeżeli i to nie pomoże, spróbuj zaimportować wszystko do nowej bazy. W
tym momencie, jeżeli baza była zabezpieczona na poziomie uzytkownika: do
ponownego ustanowienia uprawnień możesz popróbować Security Mover'a
(będzie okazja go przetestować ;-) Â chociaż jeżeli baza źródłowa jest
padnięta, to chyba nic z tego nie wyjdzie...).
Jeśli i to nie pomoże - odtwórz bazę z backupu ;-)
Pozdrawiam -
Stanley
http://msaccess.of.pl
Dzieki! Ale... nic nie pomaga. Nie moge zaimportowac - pojawia sie komunikat
j.w. Czy jest sposob na odzyskanie danych???
Backup? :-) No właśnie...
Pozdrawiam
Blazek
W związku z tym sypią się odnośniki w samym helpie, Object Browser się
zawiesza jak nacisnę F1 itd, itp.
Oczywiście próbowałem doinstalować to i owo (dla access'a wybrałem wszystko
+ pomoc dla VB)
Jedynie czego nie robiłem to reinstalacja - bo nie mam czasu na niepewne
próby.
Wydawałoby się, że przekopiuję pliki z pierwszego komputera, ale nie działa
:-(
Może ja przekopiowałem nie te co należy ...
Jakiekolwiek sugestie ?
KN
P.S. Nie mam pod ręką kompakta dla Access'a - gdyby kto radził zainstalować
...
----------------------------
Tomasz Bednarz
t@internet.pl
t@silesianet.pl
---------------------------------------------------------------------------
Zapraszam na moja strone: http://tb.silesianet.pl
Access, Delphi, Programy, Muzyka, Grafika ......
---------------------------------------------------------------------------
| Problem
| Baza przy otwieraniu daje komunikat
| "Aparat bazy danych Microsoft Jet zatrzymal proces, poniewaz inny
uzytkonik
| probuje jednoczesnie zmienic te same dane"
| Baza sie nie otwiera
| Polaczenia sieciowe sa pozamykane i nadal efektu nie widac
| Co z tym zrobic ?
| Moze ktos ma jakis pomysl ?
Czesc,
a defragmentacji probowales?
1. Podczas proby defragmentacji wywala to samo i bazy nie defragmentuje
2. Jak robie naprawianie bazy to pisze ze naprawil a przy otwieraniu bazy
efekt jest ten sam
Tomasz BEdnarz
t@internet.pl
Otrzymałem od kolegi baze danych pod Accesa 2000, lecz nie mogę jej otworzyć
ponieważ kończy to się komunikatem:
"Aparat bazy danych Microsoft Jet zatrzymał proces, ponieważ inny użytkownik
próbuje jednocześnie zmienić te same dane"
Jak mam to obejść aby otworzyć taką bazę? Jaki jest powód pojawienia się
takiego komunikatu ?
A ja wlasnie potrzebuje uzyc tak funkcje "sum" jak opisano wyzej, czy mozna
to jakos zastapic??
Jacek B.
Mam bazkę w A2k zabezpieczoną na poziomie użytkownika, w ten sposób by
standardowy user (Admin) mógł do niej wejść, edytować większość z tabel ale
by nie mógł zmieniać ustawień administracyjnych.
Wszystko fajnie poza jedną rzeczą. Gdy z drugiej aplikacji próbuję się
dostać do tej bazy przez ADO otwierając połączenie przy pomocy odpowiedniego
pliku systemowego (*1) nie mam żadnych problemów. Gdy jednak próbuję
otworzyć jakiś zestaw rekordów łącząc się "anonimowo" (*2) to dostaje odpór
o braku uprawnień.
W czym problem?
Wyjaśnienie:
*1)
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:MojaBaza.mdb;" & _
"Jet.OLEDB:System Database=C:MojSystem.mdw", & _
"Grzegorz", "AlaMaKota")
*2)
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0; " & _
"Data Source=C:MojaBaza.mdb;"
Aha, używając tabel połączonych wszystko działa tak jak trzeba, ale niestety
nie mogę ich użyć :-(.
Pozdrawiam
Grzegorz
Mam taką kwerende krzyżową która pobiera dane ze zwykłej kwerendy "źródłowej".
I ta zwykła kwerenda w kryteriach pola ZakresDaty odwołuje się do pól w formularzu:
Between [Forms]![Raporty]![data1] And [Forms]![Raporty]![data2]
i ta zwykła kwerenda mi działa lecz gdy chcę uruchomić kwerende krzyżową
wyrzuca mi błąd:
"Aparat bazy danych Microsoft Jet nie może rozpoznać "[Forms]![Raporty]![dat1]"
jako poprawnej nazwy pola lub jego wyrażenia"
lecz gdy w kryteriach kwerendy "źródłowej" zamienie wpis na:
Between #2004-04-25# And #2005-04-25#
to wszystko działa dobrze.
Czy może ktoś mi pomóc jak mogę wpiasać w kryteriach kwerędy "żródłowej" porwane
odwołanie do pól formularza aby móc odfiltrować zakres dwóch dat i aby kwerenda
krzyzowa pobierająca z niej dane działała prawidłowo.
Dziękuję Monika.
| Mam taką kwerende krzyżową która pobiera dane ze zwykłej kwerendy
| "źródłowej".
| I ta zwykła kwerenda w kryteriach pola ZakresDaty odwołuje się do pól
| w formularzu:
|
| Between [Forms]![Raporty]![data1] And [Forms]![Raporty]![data2]
|
| i ta zwykła kwerenda mi działa lecz gdy chcę uruchomić kwerende
| krzyżową
| wyrzuca mi błąd:
|
| "Aparat bazy danych Microsoft Jet nie może rozpoznać
| "[Forms]![Raporty]![dat1]" jako poprawnej nazwy pola lub jego
| wyrażenia"
|
| lecz gdy w kryteriach kwerendy "źródłowej" zamienie wpis na:
|
| Between #2004-04-25# And #2005-04-25#
|
| to wszystko działa dobrze.
W kwerendzie krzyżowej zdefiniuj jawnie parametry - jak odwołania do
formularzy
W sql będzie to wyglądało tak:
Parameters
[Forms]![Raporty]![data1] datetime
, [Forms]![Raporty]![data2] datetime;
Transform ...
(...)
Where
Between [Forms]![Raporty]![data1] And [Forms]![Raporty]![data2]
And
(...)
Pivot ...
| Mam taką kwerende krzyżową która pobiera dane ze zwykłej kwerendy
| "źródłowej".
| I ta zwykła kwerenda w kryteriach pola ZakresDaty odwołuje się do pól
| w formularzu:
|
| Between [Forms]![Raporty]![data1] And [Forms]![Raporty]![data2]
|
| i ta zwykła kwerenda mi działa lecz gdy chcę uruchomić kwerende
| krzyżową
| wyrzuca mi błąd:
|
| "Aparat bazy danych Microsoft Jet nie może rozpoznać
| "[Forms]![Raporty]![dat1]" jako poprawnej nazwy pola lub jego
| wyrażenia"
|
| lecz gdy w kryteriach kwerendy "źródłowej" zamienie wpis na:
|
| Between #2004-04-25# And #2005-04-25#
|
| to wszystko działa dobrze.
W kwerendzie krzyżowej zdefiniuj jawnie parametry - jak odwołania do
formularzy
W sql będzie to wyglądało tak:
Parameters
[Forms]![Raporty]![data1] datetime
, [Forms]![Raporty]![data2] datetime;
Transform ...
(...)
Where
Between [Forms]![Raporty]![data1] And [Forms]![Raporty]![data2]
And
(...)
Pivot ...
--
KN
-------------------------------------------------------------
------- DZIEKI KRZYSIEK ZA POMOC - DZIAŁA - !!! _monika
--------------------------------------------------------------
Monika R napisał(a):
Witam.
Mam taką kwerende krzyżową która pobiera dane ze zwykłej kwerendy "źródłowej".
I ta zwykła kwerenda w kryteriach pola ZakresDaty odwołuje się do pól w formularzu:
Between [Forms]![Raporty]![data1] And [Forms]![Raporty]![data2]
i ta zwykła kwerenda mi działa lecz gdy chcę uruchomić kwerende krzyżową
wyrzuca mi błąd:
"Aparat bazy danych Microsoft Jet nie może rozpoznać "[Forms]![Raporty]![dat1]"
jako poprawnej nazwy pola lub jego wyrażenia"
lecz gdy w kryteriach kwerendy "źródłowej" zamienie wpis na:
Between #2004-04-25# And #2005-04-25#
to wszystko działa dobrze.
Czy może ktoś mi pomóc jak mogę wpiasać w kryteriach kwerędy "żródłowej" porwane
odwołanie do pól formularza aby móc odfiltrować zakres dwóch dat i aby kwerenda
krzyzowa pobierająca z niej dane działała prawidłowo.
Dziękuję Monika.
Zrobiłem sobie w ramach eksperymentów z ADP mały formularzyk oparty na
danych z lokalnej bazy mdb, mam w nim taki kod:
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Private Sub Form_Load()
Set cnn = New ADODB.Connection
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=D:BazyADPEksperymentyDaneLok.mdb;"
cnn.Open
Set rst = New ADODB.Recordset
rst.Open "tblAla", cnn, adOpenKeyset, _
adLockOptimistic, adCmdTable
Set Me.Recordset = rst
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set rst = Nothing
Set cnn = Nothing
End Sub
Działa, lecz jest problem, że dane są tylko do przeglądania: nie można ich
ani edytować ani też dodawać nowych rekordów. Nie można też zamiast
adOpenKeyset użyć adOpenDynamic. Macie jakieś pomysły?
Pozdrawiam
Grzegorz
Można robić kwerendy przekazujące. Wykonują się one na serwerze. Przez sieć
idzie tylko tabela z wynikami.
Pozdrawiam serdecznie,
Kamil.
| Dane są w pliku na serwerze. Jak go uruchomie i otwieram tabele to
| smiga
ok,
| natomiast kiedy podłącze je do innego pliku i stamtąd otwieram to trwa
| to
| wieki. A'2002 , maszyny szybkie, siec szybka... wiec w czym problem?
| dodam że pliki są po imporcie z A'97.
walczę z tym już 3-ci dzień i bez skutku. Konwertuje baze z danymi na
wer.'97
na 2002 ale bez efektu. W dalszym ciągu otwarcie podłączonej tabeli trwa
około
10-15 sekund. Może coś w Accessie trzeba zaznaczyć??
please podpowiedzcie coś...
/ks/
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Dim cnn As New ADODB.Connection()
strCnn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & dbPath & "osobnik.mdb;" & _
"Mode=ReadWrite;" & _
"Jet OLEDB:System database=" & dbPath & "Starter.mdw;"
cnn.Open(strCnn, login, haslo)
rs.Open("tOsoby", cnn, adOpenDynamic, adLockOptimistic)
rs.Supports(ADODB.CursorOptionEnum.adSeek))
zwraca mi false
a jak wywołuję to mam wyjątek że ten prowaider nie wspiera seeka ;-((((
...a ja mam przykłagy googlniete gdzie to działa...
tylko nie potrafię znaleźć krzaka usiebie
Macie jakieś pomysły
Pozdrowionka
MG
Stworzylem baze danych poprzez ADOX.Catalog, laczac sie przez
Jet.OLEDB 4.0. Na drugim komputerze z Access 97 chcialem otworzyc
te baze i wyskakuje "Nieprawidlowy format bazy danych".
Zainstalowalem MDACa 2.7 i dalej ten sam komunikat. Czy mozna to
jakos obejsc, co trzeba zainstalowac?
Żeby Access 97 otworzył bazę musi być ona w formacie Jeta 3.X.
Korzystając z dostawcy Microsoft.Jet.OLEDB.4.0 bazę w tym formacie
utworzysz w taki sposób:
#v+
Sub CreateDatabase()
Dim cat As New ADOX.Catalog
cat.Create "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:
ew.mdb;Jet OLEDB:Engine Type=4"
End Sub
#v-
Pozdrawiam,
Przeczytaj wszystkie posty z tego wątku
Żeby Access 97 otworzył bazę musi być ona w formacie Jeta 3.X.
Korzystając z dostawcy Microsoft.Jet.OLEDB.4.0 bazę w tym formacie
utworzysz w taki sposób:
#v+
Sub CreateDatabase()
 Dim cat As New ADOX.Catalog
Â
 cat.Create "Provider=Microsoft.Jet.OLEDB.4.0;" & _
  "Data Source=c:
ew.mdb;Jet OLEDB:Engine Type=4"
 Â
End Sub
#v-
Ok. Tworzy mi baze, ale jest jedno ale... Otoz nie moge utworzyc tabeli z
polem, które ma byc unikalne. Przy wykonywaniu ponizszej instrukcji SQL:
Create Table Lancuchy (slowo text, adres text, CONSTRAINT ogr UNIQUE (slowo));
wywala mi blad: "Nieprawidlowa definicja pola 'slowo' w definicji indeksu lub
relacji".
Pozdrawiam.
Borowik
Michal <mchm@kis.p.lodz.plwrote in message
Sprecyzuj to RTFM.
Michał
Sprawdź temat:
Słowa zastrzeżone w języku SQL aparatu bazy danych Microsoft Jet
Jest tam lista poleceń SQL.
Lecho
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
Application("DatabaseName") & ".mdb;Jet OLEDB:System database="
& _
Application("DatabaseName") & _
".mdw;User ID=Admin;Password=Sprzedaz;"
otrzymuję błąd serwera:
Ta strona nie może być wyświetlona
Wystąpił problem ze stroną, do której próbujesz się dostać, i której nie
(...)
Sprawdziłem - plik informacyjny grupy roboczej (System.mdw) istnieje i
jest
poprawny.
Ale ty nie chcesz przecież używać "System.mdw" lecz:
Application("DatabaseName") & ".mdw"
No chyba, że twoja baza nazywa się System.mdb (DatabaseName).
Pozdrawiam
Grzegorz
"Janek" <duzy_jasWYTNI@poczta.onet.plwrote in message
| Mam problem przy próbie otwarcia bazy Accessa ze skryptu ASP:
| Â con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
| Â Â Â Â Â Application("DatabaseName") & ".mdb;Jet OLEDB:System database="
& _
| Â Â Â Â Â Application("DatabaseName") & _
| Â Â Â Â Â ".mdw;User ID=Admin;Password=Sprzedaz;"
| otrzymuję błąd serwera:
| Ta strona nie może być wyświetlona
| Wystąpił problem ze stroną, do której próbujesz się dostać, i której nie
(...)
| Sprawdziłem - plik informacyjny grupy roboczej (System.mdw) istnieje i
jest
| poprawny.
Ale ty nie chcesz przecież używać "System.mdw" lecz:
Application("DatabaseName") & ".mdw"
No chyba, że twoja baza nazywa się System.mdb (DatabaseName).
Pozdrawiam
Grzegorz
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Witam
Mam następujący problem: utworzyłem bazę danych z własnym plikiem
zabezpieczeń, podpietym do bazy za pomocą skrótu z użyciem komendy
/wrkgrp. Oczywiście wszystkie obiekty w bazie maja zmienionego właściciela
z admina na moją własną nazwę. Wszystko działą super
Teraz chciałbym dobrać się do tych danych przy pomocy programu Statistica
7.0. Próbuję utworzyć połączenie do tej bazy za pomocą ODBC lub Jet (z
silnika Statistica Querry) ale nigdzie nie mogę znaleźć opcji pozwalającej
podpiąć własny plik zabezpieczeń.
http://www.connectionstrings.com/
i tam ODBC:
Workgroup:
"Driver={Microsoft Access Driver
(*.mdb)};Dbq=C:mydatabase.mdb;SystemDB=C:mydatabase.mdw;Uid=UserName;Pwd=UserPassword;"
"
OLEDB:
Workgroup (system database):
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=somepathmydb.mdb;Jet
OLEDB:System Database=system.mdw;User Id=UserName;Password=UserPassword;"
GD
strCn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & strPom & ";" & _
"user id=system;password=; "
Z bazy BazaGL (Formularze) chce otworzyc tabele w bazie BazaGLZap (Tabele).
Baza podzielona.
Dostaje komunikat.
"Nie mozesz uruchomic aplikacji.Plik informacyjny grupy roboczej nie
istnieje lub zostal otwary w trybie wylacznosci przez innego uzytkownika"
Skrot do bazy ma taka sciezka.
' C:Program FilesMicrosoft OfficeOfficeMSACCESS.EXE"
"C:WindowsPulpitBAZANowaBazaGLZap.mdb" /WRKGRP
"C:WindowsPulpitBAZANowaabezpieczony.mdw"
Kurde nie wiem co jest grane, co nie kpw.
Pozdrawiam
emejurek
From: "emejurek" <emeju@poczta.onet.pl
To: <pl-comp-bazy-danych-msacc@newsgate.pl
Sent: Friday, June 13, 2003 1:40 PM
Subject: Baza zabezpieczona
Czesc ma tak
strPom = C:WindowsPulpitBAZANowaBazaGLZap.mdb
strCn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & strPom & ";" & _
"user id=system;password=; "
Kurde nie wiem co jest grane, co nie kpw.
Czesc
mam skurczybyka
Dim cnn As New ADODB.Connection
Dim rs As ADODB.Recordset
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:Windows" & _
"PulpitBAZANowaBazaGLZap.mdb;jet oledb:system database=" & _
"C:WindowsPulpitBAZANowaabezpieczony.mdw; " & _
"user id=system;Password =kik"
Set rs = New ADODB.Recordset
rs.Open "Tab_Prace", cnn, adOpenKeyset, _
adLockReadOnly, adCmdTableDirect
MsgBox rs!Tytul 'tu cie mam
rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing
Tylko dalej nie umiem odczytac tego o vvvvvvvvvv
Password =kik ?
JB
Po podzieleniu bazy (Access 2000) przestała mi działać metoda Seek w ADO.
Otrzymuję komunikat, że provider nie obsługuje tej funkcji. Przyznam, że nie
wiem o co chodzi, bo przecież cały czas wykorzystuję tego samego providera:
Microsoft.Jet.OLEDB.4.0, i bez podziału bazy metoda Seek działa znakomicie.
Zmiana właściwości "Data Source" w obiekcie Connection na wewnętrzną bazę
danych też nie pomaga.
Czy jest jakiś sposób, aby wykorzystywać metodę Seek przy podzielonej bazie
danych?
Hubert Szczerba
| Po podzieleniu bazy (Access 2000) przestała mi działać metoda Seek w ADO.
| Otrzymuję komunikat, że provider nie obsługuje tej funkcji. Przyznam, że nie
| wiem o co chodzi, bo przecież cały czas wykorzystuję tego samego providera:
| Microsoft.Jet.OLEDB.4.0, i bez podziału bazy metoda Seek działa znakomicie.
| Zmiana właściwości "Data Source" w obiekcie Connection na wewnętrzną bazę
| danych też nie pomaga.
|
| Czy jest jakiś sposób, aby wykorzystywać metodę Seek przy podzielonej bazie
| danych?
A helpa umie czytać ? Czy jest tam napisane, że Seek stosuje się tylko do "lokalnych"
recordsetów ?
No właśnie! "Lokalnych" to znaczy dla tabel lokalnych danej bazy/connection(?)
Nie chce mi się sprawdzać jak to się robi w ADO.
W DAO można to zrobić tak:
Dim db As DAO.Database
Dim rc As DAO.Recordset
Set db=DBEngine(0).OpenDatabase("C:....")
Set rc=db.OpenRecordset("tabela1", dbOpenTable)
With rc
(...)
.Seek ...
(...)
Przypuszczam, że w ADO będzie analogicznie (zamiast database pewnie jakieś
connection), poszperaj w helpie !
(w googlu tez chyba cos można znaleźć. pamiętam że emejurek lubował się i w ADO i w
Seek)
Function GetLinkPath(tbName As String) As String
Dim cat As ADOX.Catalog
Dim tbl As ADOX.Table
Set cat = New ADOX.Catalog
cat.ActiveConnection = CurrentProject.Connection
Set tbl = cat.Tables(tbName)
GetLinkPath = tbl.Properties("Jet OLEDB:Link Datasource")
End Function
Dim cn As ADODB.Connection
Dim strCn As String
Dim strPom As String
Dim TwojeZmienne...........
strPom = GetLinkPath("main") 'funkcja
If Len(strPom) Then 'jezeli jest to tabela polaczona
Set cn = New ADODB.Connection
strCn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & strPom
'itd tu ladnie chodzi seek
Else
'jezeli tabela nie jest polaczono
'to twoj kod
End if
Hubert Szczerba
"Wydajność pracy z główną bazą danych, tabelami i formularzami można
znacznie zwiększyć, jeśli połączone bazy danych będą pozostawały przez cały
czas pracy otwarte. W tym celu należy utworzyć pustą tabelę w połączonej
bazie danych oraz utworzyć połączenie z tą tabelą w głównej bazie danych.
Następnie do otwarcia tabeli połączonej należy użyć metody OpenRecordset. W
ten sposób aparat bazy danych Microsoft Jet nie będzie wielokrotnie otwierał
i zamykał połączonej bazy danych, a także nie będzie niepotrzebnie tworzył i
usuwał związanego z bazą danych pliku .ldb."
Potrafię korzystać z metody OpenRecordset do otwierania tabeli, ale nie wiem
jak zmodyfikować wszystkie formularze i kwerendy korzystające z tabeli
połączonej o nazwie np. Tabela1. W szczególności proszę o wyjaśnienie
zwrotu:
"W tym celu należy utworzyć pustą tabelę w połączonej bazie danych oraz
utworzyć połączenie z tą tabelą w głównej bazie danych."
Z góry dziękuję za pomoc.
Tomasz Sadecki
używam pliku Access'a 2000 jako źródła danych dla strony w ASP na IIS 5.0
(WIN2000 Server PL SP3). Jednak nie mogę pobrać danych z jednego z plików.
Leży lokalnie na dysku serwera gdzie jest IIS, jest to wzorzec replik lub
jedna z replik
(probowałem łączyć na różne sposoby). Połączenie jest przez ODBC, systemowy
DNS.
ASP wyrzuca błąd:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][Sterownik ODBC Microsoft Access ] Aparat bazy danych Microsoft
Jet nie może otworzyć pliku '(nieznane)'. Plik jest już otwarty do
wyłącznego użytku przez innego użytkownika lub potrzebne jest zezwolenie na
oglądanie jego danych.
Tak jakby baza była otwarta w trybie projektowania, ale nie jest.
Googlowałem już pod tym kątem, le bez rezultatu.
Na tym samym serwerze działa poprawnie połaczenie z inną bazą Access,
także przez ODBC.
Jak to ugryźć?
Dzięki z góry za sugestie
Pozdro
Michał Leder
<OBJECT id=MSODSC codeBase="拠ઉ"
classid=CLSID:0002E530-0000-0000-C000-000000000046<PARAM NAME="XMLData"
VALUE="<xml
xmlns:a="urn:schemas-microsoft-com:office:access"
<a:DataSourceControl
<a:OWCVersion9.0.0.3821</a:OWCVersion
<a:ConnectionStringProvider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data
Source=http://url_serwera_www/baza.mdb;Mode=Share Deny None;Jet OLEDB:System
database=&quot;&quot;;Jet OLEDB:Database
Password=&quot;&quot;</a:ConnectionString ...
Wchodzę na stronę z PC-ta na którym jest Microsoft Access 2002 Runtime. Po
jej wywołaniu otrzymuję komunikat:
Nieprawidłowa nazwa pliku
Nie można zainicjować dostawcy danych
lub na innym PC-cie:
'C:WindowsPulpithttp:\url_serwera_wwwaza.mdb' is not a valid path...
Wygląda na to że składnia użyta w Data Source jest nieprawidłowa i
traktowana jest jak odwołanie lokalne. Ktoś ma pomysł?
Marek S.
oprogramowanie: Windows 98
Office 97 Professional
Office 97 Developer Edition Tools
Dziękuję
Pyter
Przy "Open" wywala komunikat:
Run-Time Error '-2147467259(8004005)'
Ni mozna znalesc instalowanego pliku ISAM
O co tu chodzi nigdzie niema tego w helpie.
Pozdrawiam Witek Bator
jesli ustawie haslo bazy danych ms access, to jak wtedy powinien wygladac
connection string do tej bazy ??? chodzi mi tu glownie o usera.
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=databaseName;" & _
"User ID=userName;" & _
"Password=userPassword;"
F1
Ciao, Smyk
Przeczytaj wszystkie posty z tego wątku
Aseta wrote:
Witam Grupowiczów
Czy udało się komuś zmusić wspomniane w temacie obiekty accessa do
osadzenia na serwerze www i aby korzystały z dostawcy OLE DB i pliku
z danymi *.mdb oraz z grupą roboczą system mdw? Jeżeli tak to jakiś
link.
Na pewno można. Gdzieś widziałem w jakiejś mojej gazetce w czasach kiedy
jeszcze nie wiedziałem co to OLE DB (nie tak dawno ;-))
Nie pamiętam dokładnie ale szło jakoś podobnie jak "normalnie" w access'ie
</?
set cnn1 = new adodb.connection
cnn1.provider = "Microsoft.Jet.OLEDB.4.0"
cnn1.properties("Data Source") = "c:aza.mdb"
cnn1.properties("Jet OLEDB:System database") = "c:system.mdw"
cnn1.properties("User Id") = "juzer"
cnn1.properties("Password") = "pass"
cnn1.open
set rst1 = new adodb.recordset
rst1.open "select ...", cnn1, ...itd, itp.
?/
najpewniej skopałem znaczniki ale było coś z pytajnikiem.
elementy html'a można mieszać z OLE DB, ale te muszą być zamknięte tym
znacznikiem </?...
chyba :o)
na rekordsecie działają zdaje się wszystkie metody i właściwości
nie wiem czy pomogłem, a może się tylko zdrzaźnisz czytając takie
komunały...
ps.jeśli nie pójdzie to może trzeba dodać cnn1.CursorLocation =
adUseServer - przed open
tu znowu pływam...
Szanowni grupowicze mam problem, z którym nie mogę się uporać.
Bardzo serdecznie proszę o pomoc.
Mam tabelę z danymi *.dbf
I teraz, muszę na tej tabeli zrobić kilka operacji. Postanowiłem otworzyć jąw
Exellu komendą OpendataBase. Niestety nie idzie.
Kod programu:
Dim tabela As Database
Dim wrkJet As Workspace
Set wrkJet = CreateWorkspace("", "admin", _
"", dbUseJet)
Set tabela = wrkJet.OpenDatabase("", dbDriverNoPrompt, False, "ODBC;")
zapis ten powoduje uruchomienie okna dialogowego.
W BDE już wcześniej zdefiniowałem plik typu dsn odwołujący się o odpowiedniego
pliku dbf.
niestety po tym wszystkim exell wyświetla błąd nr 3423:
Nie można używać ODBC do importowania, eksportowania lub dołączania do azy
danych z zewnętrznej bazy danych Microsoft Jet lub ISAM.
Pomoc :
Próbowano dołączyć, importować lub eksportować dane z tabeli zewnętrznej bazy
danych Microsoft Jet lub zewnętrznej bazy danych ISAM (na przykład dBASE,
FoxPro, Paradox lub Btrieve), ale jako źródło danych wybrano bazę danych SQL.
Należy wybrać odpowiednie źródło danych, które mają być dołączone.
Powiem szczerze nic z tego nie rozumiem, bowiem w pomocy do VBE są przykłady
otwierające tego typu bazy. Proszę powiedzcie, gdzie jest moje niedopatrzenie.
Z góry dziękuję za pomoc
Zdesperowany.
p.s.
Proszę nie doradzać użycia .QueryTables.Add
Zrobilem kweredne krzyzowa ktora sumuje mi pewne dane z faktury. Konkretnie
z wszystkich faktur, a ja za kazdym razem potrzebuje dane tylko z jednej
faktury - ktorej numer jest aktualnie wpisnay w formularzu.
Kiedy wykonywalem podobne operacje w kwerendzie wybierajacej, w polu
kryteria pod polem "NumerFaktury" w kwerendzie wpisalem odnosnik do
formularza
[Formularze]![frmEdycjaFaktury]![NumerFaktury] i kwerenda pokazuje mi tylo
dane dla okreslonego numeru faktury ktorego nie musze wpisywac jako
parametru.
Probowalem to samo zrobic w kwerendzie krzyzowej, lecz niestety nie da sie -
podczas uruchomienia kweredny otrzymuje komunikat ze Microsoft Jet nie
poznaje pola ktore podalem w odnosniku
[Formularze]![frmEdycjaFaktury]![NumerFaktury].
Odnosnik napewno jest wpisany dobrze bo zrobilem ctrl - C i ctrl - V z
kwerendy wybierajacej :)
Co zrobic zeby to zadzialalo ?
Pozdrawiam,
Marcin
1. Jeśli to możliwe to w jaki sposób nakazać wykonanie kwerendy umieszczonej
w bazie access2000 z kodu VB6 (dostęp przez ADO, Provider to
Microsoft.Jet.OLEDB.4.0) ?
2. Jak wykonać defragmentację bazy (odpowiednik kompaktuj i napraw z
accessa)? Warunki j.w.
pozdrawiam
Norbert
2. Jak wykonać defragmentację bazy (odpowiednik kompaktuj i napraw z
accessa)? Warunki j.w.
dodać referencje do Microsoft Jet And Replication Objects 2.x Library
Dim JRO As JRO.JetEngine
Set JRO = New JRO.JetEngine
JRO.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0; Data
Source=baza.mdb", "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=baza.mdb;
Jet OLEDB:Engine Type=5"
"Robert Krawiec" <krawiec_r._cutth@poczta.onet.pl._cutthis_wrote in
message
| Witam.
| 1. Jeśli to możliwe to w jaki sposób nakazać wykonanie kwerendy
umieszczonej
| w bazie access2000 z kodu VB6 (dostęp przez ADO, Provider to
| Microsoft.Jet.OLEDB.4.0) ?
| 2. Jak wykonać defragmentację bazy (odpowiednik kompaktuj i napraw z
| accessa)? Warunki j.w.
| pozdrawiam
| Norbert
O ile pamiętam, to przez obiekt Command. Z wygody wróciłem do DAO...
juz sobie poradziłem w inny sposób (zrezygnowałem z kwerendy)
jak to sprawdzić z programu....
tak aby skontruować ConnectionString poprawnie dla każdego M$ OS
Option Compare Database
Private Sub Polecenie0_Click()
Const adOpenStatic = 3
Const adLockOptimistic = 3
Const ForReading = 1
Set objConnection = CreateObject("ADODB.Connection")
Set objRecordSet = CreateObject("ADODB.Recordset")
objConnection.Open _
"Provider = Microsoft.Jet.OLEDB.4.0; " & _
"Data Source = C:FolderPlik.mdb"
objRecordSet.Open "SELECT * FROM Kredytobiorcy", _
objConnection, adOpenStatic, adLockOptimistic
Dim sFile As String
Dim sFilter As String
WizHook.Key = 51488399
sFilter = "Baza Excel (*.csv,*.txt)"
WizHook.GetFileName 0, "", "", "", sFile, "", sFilter, 0, 0, 0, True
Set objfso = CreateObject("Scripting.FileSystemObject")
Set objfile = objfso.OpenTextFile(sFile)
Do Until objfile.AtEndOfStream
strCREDIT = objfile.ReadLine
arrcredit = Split(strCREDIT, ";")
objRecordSet.AddNew
objRecordSet("Numer") = arrcredit(0)
objRecordSet("PESEL") = arrcredit(1)
[kolejne kolumny ktorych nie wklejalem]
objRecordSet.Update
Loop
objRecordSet.Close
objConnection.Close
End Sub
Moge natomiast wyeksportowac pojedyncza tabele z Accessa poprzez export
przez ODBC.
Jest tylko jeden problem gubie polskie znaki!!!!A to dyskwalifikujacy
problem w mojej bazie
Poprzez rozbudowe bazy Access (kreator Access 2000) tez nie moge
wyeksportowac bazy. Na koncu powstaje raport i kazda tabela jest opisana ,że
nie mogla zostac wyeksportowana
komputer klienta to Windows 98 pl
serwer gdzie jest ms sql server 7 to Windows NT 4 Server SBS Service pack 4
Pomocy. Przy okazji moge sie podzielic jakimis moimi doswiadczeniami w
budowaniu aplikacji w Accesie jesli ktos bedzie wiedzial mniej niz ja
"jacek" <off@flopsystem.com.plwrote in message
Mam pewien problem i potrzebuje pomocy.
Nie mogę zaimportować bazy danych Access do MSSql Server 7 poprzez
Wizarda.
Na końcu operacji gdy w Wzzardzie widze już tabele Accessa pokazuje się
komunikat
Error Source -Microsoft jet Database Engine
Nie można odczytać rekordu lub rekordów, brak zezwolenia na czytanie z
'nazwa pierwszej tabeli'
Moge natomiast wyeksportowac pojedyncza tabele z Accessa poprzez export
przez ODBC.
Jest tylko jeden problem gubie polskie znaki!!!!A to dyskwalifikujacy
problem w mojej bazie
Poprzez rozbudowe bazy Access (kreator Access 2000) tez nie moge
wyeksportowac bazy. Na koncu powstaje raport i kazda tabela jest opisana
,że
nie mogla zostac wyeksportowana
komputer klienta to Windows 98 pl
serwer gdzie jest ms sql server 7 to Windows NT 4 Server SBS Service pack
4
Pomocy. Przy okazji moge sie podzielic jakimis moimi doswiadczeniami w
budowaniu aplikacji w Accesie jesli ktos bedzie wiedzial mniej niz ja
Najprostszy sposób to zainstalować polskie znaki na MS SQL 7.
Da się nawet w wersji Angilelskiej. Niestety trzeba do tego przeinstalować
serwer ...
Tomasz Jastrzębski
Dim con As OleDbConnection
Const str As String = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:InetpubwwwrootSprzedaz.NETsprzedaz.mdb;" & _
"Jet OLEDB:System database=C:InetpubwwwrootSprzedaz.NETsprzedaz.mdw;" & _
"User ID=Admin;Password=Sprzedaz;" & _
"Connect Timeout=30;"
con = New OleDbConnection(str)
con.Open() ' błąd: Wielokrokowa operacja bazy danych OLE wygenerowała błędy.
Sprawdź wszystkie wartości stanu bazy danych OLE. Nie wykonano żadnego
działania.
Nie rozumiem tego błędu i nie wiem jak go skorygować. Byłbym wdzięczny za pomoc.
(MP)
| W sumie, to nie ma specjalnego znaczenia czy baza jest obsługiwana za
| pomocą
| Jeta, czy też MS SQL - jeśli korzystasz z ADO.NET i providera OleDb, to
| kod
| będzie w dużej części identyczny, np. kod działający zarówno w Accessie
| jak
| i SQL Serverze:
Czy mogę zamienić w powyższym przykładzie "myConnect.udl" plikiem
msaccessa .mdb?
Możesz zamienić na pełny connection string, np (Access):
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:DevelopmentAplikacje
AccessTestyMojaBaza.mdb;Persist Security Info=False
albo (serwer MsSQL):
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security
Info=False;Initial Catalog=Northwind;Data Source=GDNBOOK
itd.
Aby szybko utworzyć prawidłowy ConnectionString, to najlepiej i tak posłużyć
się udl:
1) nowy plik tekstowy, zmienić rozszerzenie na udl,
2) kliknąć go dwukrotnie - powinien się otworzyć "Microsoft Data Access" -
wybrać odpowiednie źródło, sprawdzić klikając na "Testuj połączenie",
3) po zamknięciu apletu z punktu 2. otworzyć plik udl w dowolnym edytorze,
np. notatniku, wordpadzie i skopiować zawartą tam ścieżkę.
Można też skorzystać z pomocy na sieci, np.:
http://www.connectionstrings.com/
Jednak moim zdaniem, na początku odwoływanie się do zewnętrznego pliku udl,
jest bardzo wygodne :-).
Pozdrawiam
Grzegorz
Skopiowałam ze strony podanej przez jegomościa o pseudonimie SMYK.
Chciałbym połaczyć się z bazą Access poprzez ADO i wykonać na niej dwie
funkcje z modułu1 i zakończyć połączenie
Skrypt mógły wyglądać tak:
Dim Conn,
Set Conn = CreateObject("ADODB.Connection")
Conn.Provider = "Microsoft.Jet.OLEDB.4.0"
Conn.Open "\SERV01GarpRAPORT_CIECIECUT_X.mdb"
Jak jednak wywołać funkcje (kod VBA)?
Baza wymaga także logowania się na usera i hasło
Skopiowałam ze strony podanej przez jegomościa o pseudonimie SMYK.
Chciałbym połaczyć się z bazą Access poprzez ADO i wykonać na niej dwie
funkcje z modułu1 i zakończyć połączenie
Skrypt mógły wyglądać tak:
Dim Conn,
Set Conn = CreateObject("ADODB.Connection")
Conn.Provider = "Microsoft.Jet.OLEDB.4.0"
Conn.Open "\SERV01GarpRAPORT_CIECIECUT_X.mdb"
Jak jednak wywołać funkcje (kod VBA)?
Niech jegomość o pseudonimie MaciejF w końcu się zdecyduje, czy używa
skryptu (vbs), czy pisze w Accessie (vba)? Jeśli natomiast chce za pomocą
vbs uruchomić kod vba w bazie accessowej i nie ma Accessa na swoim
komputerze (albo runtime), to niestety tak się nie da (ściągać same dane
owszem). Jeśli ma Accessa, to trzeba to zrobić za pomocą automatyzacji.
Baza wymaga także logowania się na usera i hasło
Niech MaciejF zajrzy do googlownicy i poszuka jak powinien wyglądać ciąg
połączenia w przypadku dostępu do plików zabezpieczonych na poziomie
użytkownika. Mi się znalazło coś takiego:
http://www.connectionstrings.com/?carrier=access (w przypadku MaciejaF
będzie to ostatni połączenia OleDB z hasłem).
Pozdrawiam
Grzegorz
| Baza wymaga także logowania się na usera i hasło
Niech MaciejF zajrzy do googlownicy i poszuka jak powinien wyglądać ciąg
połączenia w przypadku dostępu do plików zabezpieczonych na poziomie
użytkownika. Mi się znalazło coś takiego:
http://www.connectionstrings.com/?carrier=access (w przypadku MaciejaF
będzie to ostatni połączenia OleDB z hasłem).
Sprostowanie, jeśli baza jest zabezpieczona na poziomie użytkownika, to
musisz użyć pozycji Workgroup (system database) oraz podać użytkownika i
hasło:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:mydatabase.mdb;Jet
OLEDB:System Database=C:mysystem.mdw;User Id=NazwaUsera;Password=hasełko;
G.
Problem:
Postawiony IIS i działa, kawałek kodu w ASP i działa...
Plik bazy danych plik.mdb + konta konta.mdw i wszystko
działa tak długo
jak w kodzie asp otwieram połączenie na użytkowniku który
ma prawo do otwierania połączenia
w trybie wyłączności ...
czy da się tak zadziałać żeby otwarcie bazy było w trybie
współdzielonym
cnnStr = "Provider=Microsoft.Jet.OLEDB.4.0; data source=" &
Server.MapPath("db/plik.mdb") & "; " & _ "Jet OLEDB:System
database=" & Server.MapPath("db/konta.mdw") & ";"
Conn.Open cnnStr, "rouser", "rouser"
;-)
efekt pojawił się po łataniu IISa ;-(
wcześniej połączenie było otwierane i nie wymagało
wyłączności
Teraz kod zwraca mi że nie mam uprawnień do otwierania
połączenia.
Możecie coś podpowiedzieć ?
Pozdrawiam
MarcinG
Przy bieŻącym ? Ło matko jedyno ! Co za gienialny pomysł ! A jeśli rekordów
byłoby 200tys. pętla leciałaby do przyszłego roku. Zamiast tego
rewelacyjnego pomysłu polecam UPDATE ==F1
Pozdr,
GB
Dim p As ADODB.Property
Dim db As ADODB.Connection
Dim r As ADODB.Recordset
Set db = New ADODB.Connection
Set r = New ADODB.Recordset
db.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;" & _
"data source=c: iki est.mdb;"
db.Open
r.Open "Select * From Tabela", db, adOpenKeyset, adLockOptimistic
While Not r.EOF
MsgBox r(0)
r.MoveNext
Wend
r.Close
db.Close
| | | Witam.
| Jak wykonać pętle która przeszła by przez wszystkie rekordy w
formularzy
| ciągłym i zatrzymała by się na ostatnim. Mam pewne obliczenia robione
| "przy
| bierzącym", a przyciskanie przycisku (next) przy dużej ilości
rekordów
| jest mało efektywne.
Dim p As ADODB.Property
Dim db As ADODB.Connection
Dim r As ADODB.Recordset
Set db = New ADODB.Connection
Set r = New ADODB.Recordset
db.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;" & _
"data source=c: iki est.mdb;"
db.Open
r.Open "Select * From Tabela", db, adOpenKeyset, adLockOptimistic
While Not r.EOF
MsgBox r(0)
r.MoveNext
Wend
r.Close
db.Close
Klasyczny przykład ataku na komara za pomocą armaty, na dodatek mający w
sobie upierdliwość podawania ścieżki bezwzględnej bazy. Znacznie
klarowniejsze i proste przykłady są w helpie. Nie zapominaj, że dopiero
zaczyna. Wystarczy CurrentDB i Recordset.
Pozdr,
GB
| | | Witam.
| Jak wykonać pętle która przeszła by przez wszystkie rekordy w
formularzy
| ciągłym i zatrzymała by się na ostatnim. Mam pewne obliczenia robione
| "przy
| bierzącym", a przyciskanie przycisku (next) przy dużej ilości
rekordów
| jest mało efektywne.
| Dim p As ADODB.Property
| Â Â Dim db As ADODB.Connection
| Â Â Dim r As ADODB.Recordset
| Â Â Set db = New ADODB.Connection
| Â Â Set r = New ADODB.Recordset
| Â Â db.ConnectionString = "provider=Microsoft.Jet.OLEDB.4.0;" & _
| Â Â Â Â Â Â Â Â Â Â Â Â Â "data source=c: iki est.mdb;"
| Â Â db.Open
| Â Â r.Open "Select * From Tabela", db, adOpenKeyset, adLockOptimistic
| Â Â While Not r.EOF
| Â Â Â Â MsgBox r(0)
| Â Â Â Â r.MoveNext
| Â Â Wend
| Â Â r.Close
| Â Â db.Close
Klasyczny przykład ataku na komara za pomocą armaty, na dodatek mający w
sobie upierdliwość podawania ścieżki bezwzględnej bazy. Znacznie
klarowniejsze i proste przykłady są w helpie. Nie zapominaj, że dopiero
zaczyna. Wystarczy CurrentDB i Recordset.
Pozdr,
GB
I tak źle i tak nie dobrze :(
często zadawane są pytania o ten sposób podłączenia itd... a zresztą i tak
chłopu nikt nie chciał pomóc więc pomyślałem, że może sobie pętle wykorzystać,
która znajduje się w ww. kodzie ...
Z przepisaniem tego na mc++, to chyba nie będziesz miał problemu.
http://www.codeproject.com/cs/database/mdbcompact_latebind.asp
Chciałem jeszcze dodać, że to samo napisane w vb.net (jak też dokładnie tak
samo w VB6), będzie dużo krótsze:
Sub CompactDb(ByVal strDb As String)
Dim objJetEngine As Object = CreateObject("JRO.JetEngine")
Dim strCompactDb = strDb + ".tmp"
objJetEngine.CompactDatabase( _
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & strDb, _
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & strCompactDb)
System.IO.File.Delete(strDb)
System.IO.File.Move(strCompactDb, strDb)
End Sub
G.
|| Utworzyć sobie skrót do takiego polecenia:
||
|| "C:Program FilesMicrosoft OfficeOffice10
|| MSACCESS.EXE" "C:SiezkaDoBazyaza.mdb" /WRKGRP
|| "C:SiezkaDoPlikuMdwpl
|| ik.mdw"
|
| Ok, dzięki - udało się...
| A jakbym chciał do takiej bazy uzyskać dostęp np. VisualBasic? Chodzi
| mi o pobranie określonych rekordów....
to zależy jak chcesz się dostać do tej bazy: ODBC czy DAO czy ADO ...
- jeśli ODBC, to w definicji DSN ustawiasz właściwy plik grupy roboczej
- jeśli DAO, to poprzez DBEngine czy PrivDbEngine i jego właściwość
.SystemDB
- jeśli ADO to nie wiem, ale pewnie jakoś się da ...
--
KN
Visual Basic 6
Set cnn = New ADODB.Connection
With cnn
.Provider = "Microsoft.JET.OLEDB.4.0"
.ConnectionString = "data source = D:TPDB.mdb ;Jet OLEDB:System
database=D:TPSYSZDB.mdw ; User ID=MK ;Password= 1234"
.Mode = adModeRead
.Open
End With
..MK
Dim conStrDbDane As String
Dim clmHdr As Object
'utworz polaczenie z baza i ja otworz
Set gconDbDane = New ADODB.Connection
gconDbDane.CursorLocation = adUseClient
conStrDbDane = "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" &
"D:Moje dokumentydb_poligon" & "dbDane.mdb" & ";Persist Security
Info=False"
gconDbDane.Open conStrDbDane
'ustaw widok lvwPracownicy
Set clmHdr = Me.lvwPracownicy.Object.ColumnHeaders.Add _
(, , "Nazwisko", 1770, lvwColumnLeft)
Set clmHdr = Me.lvwPracownicy.Object.ColumnHeaders.Add _
(, , "ImiĂŞ", 1300, lvwColumnLeft)
Set clmHdr = Me.lvwPracownicy.Object.ColumnHeaders.Add _
(, , "", 2500, lvwColumnLeft)
Set clmHdr = Me.lvwPracownicy.Object.ColumnHeaders.Add _
(, , "", 0, lvwColumnLeft)
Me.lvwPracownicy.Object.View = lvwReport
PS. zapomniaÂłem o google :)
Czy można operować tą funkcją na tabelach czy tylko na -plikach ?
A czy można nacisnąć F1 ?
cytat z help'a:
Odnajduje rekord w indeksowanym obiekcie Recordset typu tabela, który
spełnia określone kryteria dla bieżącego indeksu, i czyni ten rekord
bieżącym (tylko obszary robocze Microsoft Jet).
Składnia
zestaw_rekordów.Seek porównanie, klucz1, klucz2...klucz13
koniec cytatu.
mowa o metodzie Seek, w odróżnieniu od Seek - instrukcji i Seek - funkcji,
używanych na plikach.
Działa tylko na tabelach lokalnych, a właściwie na ich indeksach.
Dla tabel połączonych stosuje się metodę Find.
KN
Pozdrawiam
Konrad
Czesc
Mam taki problem
Musze dostac sie do innej bazy i odczytac kilka danych
w tym m.in.jakie tam sa tabele.
Zalozenia.
Baza glowna zrobiona w wersji Run-Time
Baza2 w tylko Acceess
Moja podgladaczka.mdb
Czy moj kod zadziala w stosunku do Bazy2.
Przeprasza, ale mam malo czasu na eksperymentowanie,
a problem wiaze sie z wyjazdami, a musze trafic w 10.
Nie mam doswadczenia z Run_Time, ale wydaje mie sie ze nie bedzie sie roznil
kod z tego powodu. Natomisat nie napisales z jakiej wersji Accessa
korzystasz, wiec podsylam przyklad w ADOX dla A2000.
Sub ListaTabel()
Dim Katalog As New ADOX.Catalog
Katalog.ActiveConnection="Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:WindowsPulpitBaza2.mde;"
i = Katalog.Tables.Count
For i=0 To i-1
Debug.Print Katalog.Tables(i).Type, Katalog.Tables(i).Name
next i
Set Katalog = Nothing
End Sub
ADOX (Microsoft ADO Ext. 2.6. for DLL and Security)
Natomisat nie napisales z jakiej wersji Accessa
wiec podsylam przyklad w ADOX dla A2000.
Sub ListaTabel()
Dim Katalog As New ADOX.Catalog
Katalog.ActiveConnection="Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:WindowsPulpitBaza2.mde;"
i = Katalog.Tables.Count
For i=0 To i-1
Debug.Print Katalog.Tables(i).Type, Katalog.Tables(i).Name
next i
Set Katalog = Nothing
End Sub
ADOX (Microsoft ADO Ext. 2.6. for DLL and Security)
Czesc i dzieki
ale sprawa dotyczy
Access 97
I nie wiem czy pod Run-Time bedzie ta biblioteka zaznaczona
Na pewno DAO jest
Pozdrowienia
jurekeme
jak mozna zobaczyc kto jest zalogowany do programu?
Mirek
msu@komandor.pl
Ja to robiĂŞ tak:
Public Sub UserRoster()
Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
On Error GoTo Proc_err
Set conn = New ADODB.Connection
With conn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "data source=c:NazwaTwojejBazy.mdb"
.Open
End With
Set rst = conn.OpenSchema(adSchemaProviderSpecific, , _
"{947bb102-5d43-11d1-bdbf-00c04fb92675}")
Do Until rst.EOF
Debug.Print rst!COMPUTER_NAME, rst!LOGIN_NAME, rst!CONNECTED
rst.MoveNext
Loop
rst.Close
Proc_Exit:
Exit Sub
Proc_err:
MsgBox Err.Description
Resume Proc_Exit
End Sub
Pisze aplikację, która komunikuje się z Accessem przez ADO
i mam fragment kodu:
"Provider=Microsoft.Jet.OLEDB.4.0; " &
"Data Source=adotest.mdb");
Dlaczego taka aplikacja działa na jednym WIN98 a na innym NIE???
NA WIN98, gdzie nie działa pojawia się komunikat, że nie jest znany dostawca
usługi ADO.
Instalowałem sterowniki: MDAC 2.6 i nic
oraz JET40SP5 i tu na samym końcu instalacji wysypuje się.
Co robić?, Czy WIN98SE ma jakieś inne cechy w tej kwesti?
MAriusz.
Witam
Pisze aplikację, która komunikuje się z Accessem przez ADO
i mam fragment kodu:
"Provider=Microsoft.Jet.OLEDB.4.0; " &
"Data Source=adotest.mdb");
Dlaczego taka aplikacja działa na jednym WIN98 a na innym NIE???
NA WIN98, gdzie nie działa pojawia się komunikat, że nie jest znany
dostawca
usługi ADO.
Instalowałem sterowniki: MDAC 2.6 i nic
oraz JET40SP5 i tu na samym końcu instalacji wysypuje się.
Co robić?, Czy WIN98SE ma jakieś inne cechy w tej kwesti?
MAriusz.
zew.Open "tblWatek", "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:WarszawaDane.mdb;" & _
"User Id=XXX;Password=yyy;", adOpenStatic, adLockReadOnly
ale wywala mi że plik grupy roboczej nie istnieje albo został otwarty w
trybie wyłączności przez innego użytkownika
Jak nie ma User id..... to wywala mi że nie mam praw dostępu
co powinienem wpisać ??
Robert
Jak połączyć się z inną bazą accessa na tym samym kompie ?
robię:
Dim conzew As ADODB.Connection
Set conzew = New ADODB.Connection
Dim zew As ADODB.Recordset
Set zew = New ADODB.Recordset
zew.Open "tblWatek", "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:WarszawaDane.mdb;" & _
"User Id=XXX;Password=yyy;", adOpenStatic, adLockReadOnly
ale wywala mi że plik grupy roboczej nie istnieje albo został otwarty w
trybie wyłączności przez innego użytkownika
Jak nie ma User id..... to wywala mi że nie mam praw dostępu
co powinienem wpisać ??
Robert
musisz jeszcze wskazac plik systemowy
Dim conzew As ADODB.Connection
Set conzew = New ADODB.Connection
Dim zew As ADODB.Recordset
Set zew = New ADODB.Recordset
zew.Open "tblWatek", "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:WarszawaDane.mdb;" & _
"Jet OLDEB:System Database=pelna_sciezna_do_tabeli_systemowej;" & _
"User Id=XXX;Password=yyy;", adOpenStatic, adLockReadOnly
pozdrawiam
kc
(...)
| Czy da się - nie korzystając z samego Access'a - nadać uprawnienia do
| wskazanych tabel poszczególnym użytkownikom, np. z poziomu VBS lub
| jeszcze inaczej?
| Celem jest maks. ograniczenie konieczności "grzebania" w bazie przez
| końcowego użytkownika i zrobienie tego odpowiednim "toolsem".
Mozna za popmoca VBS, Excela i innych programow, ktore potrafia
komunikowac sie przez obiekty automatyzacji. Warunek jest jednak
podstawowy - na stacji musi byc zainstaowany Access. A Ty chcialbys
modyfikowac te uprawnienia na stacji, gdzie nie ma Accessa? Czy tak?
Przybliz swoja idee, bo raczej chyba jest niezrozumiala. Uprawnienia dla
kont/grup nadaje autor (podczas budowy bazy), ktory przeciez ma Accessa.
K.P.
wierzysz w to co piszesz?
w takim wypadku do czego zrobili ADOX i ADO?
http://msdn.microsoft.com/en-us/library/ms681497(VS.85).aspx
a to dodajesz do connection string-a jak chcesz stworzyć plik z hasłami
Jet OLEDB:Create System Database=true
przykład:
Dim cat As ADOX.Catalog
' Creamos un objeto Catalog
Set cat = New ADOX.Catalog
cat.Create "Provider = Microsoft.Jet.OLEDB.4.0;" & _
"Data Source = " & App.Path & "System.mdw;" & _
"Jet OLEDB:Create System Database = True"
Podczas kompaktowania wystapil jakis blad i teraz nie moge dostac sie do
pliku bazy danych.
Przy probie uruchomienia pliku bazy danych pojawia sie komunikat "Aparat
bazy danych Microsoft Jet nie moze znalezc obiektu MSysDb. Upewnij sie, ze
obiekt istnieje, a jego nazwa i nazwa siciezki podane sa prawidlowo."
Ta baza uszkodzona baza jest potrzebna do normalnego dzialania firmy !
Z gory dziekuje tym, ktorzy zechca pomoc.
Przemyslaw Swiderski
Krzysiek
Użytkownik "Przemysław Świderski" <p.swider@interia.plnapisał w
wiadomości
Bardzo prosze o POMOC !
Podczas kompaktowania wystapil jakis blad i teraz nie moge dostac sie do
pliku bazy danych.
Przy probie uruchomienia pliku bazy danych pojawia sie komunikat "Aparat
bazy danych Microsoft Jet nie moze znalezc obiektu MSysDb. Upewnij sie, ze
obiekt istnieje, a jego nazwa i nazwa siciezki podane sa prawidlowo."
Ta baza uszkodzona baza jest potrzebna do normalnego dzialania firmy !
Z gory dziekuje tym, ktorzy zechca pomoc.
Przemyslaw Swiderski
Czy baza jest w jakis sposob zabezpieczona ?
Bo mozna utworzyc nowy plik bazy i do niej zaimportowac wszystko z
uszkodzonej,
ale jak sa w bazie uszkodzonej zabezpieczenia na kod VB albo na cala baze,
to bedzie
to raczej niemozliwe do konca i w efekcie nie do uzycia.
Krzysiek
Użytkownik "Przemysław Świderski" <p.swider@interia.plnapisał w
wiadomości | Bardzo prosze o POMOC !
| Podczas kompaktowania wystapil jakis blad i teraz nie moge dostac sie do
| pliku bazy danych.
| Przy probie uruchomienia pliku bazy danych pojawia sie komunikat "Aparat
| bazy danych Microsoft Jet nie moze znalezc obiektu MSysDb. Upewnij sie,
ze
| obiekt istnieje, a jego nazwa i nazwa siciezki podane sa prawidlowo."
| Ta baza uszkodzona baza jest potrzebna do normalnego dzialania firmy !
| Z gory dziekuje tym, ktorzy zechca pomoc.
| Przemyslaw Swiderski
Podczas kompaktowania wystapil jakis blad i teraz nie moge dostac sie do
pliku bazy danych.
Przy probie uruchomienia pliku bazy danych pojawia sie komunikat "Aparat
bazy danych Microsoft Jet nie moze znalezc obiektu MSysDb. Upewnij sie, ze
obiekt istnieje, a jego nazwa i nazwa siciezki podane sa prawidlowo."
Ta baza uszkodzona baza jest potrzebna do normalnego dzialania firmy !
Jeśli to jest Acc97 "kompaktuj i napraw" ją w Acc2000.
Było tutaj kilkanaście dni temu...
Marek
Przeczytaj wszystkie posty z tego wątku
Cytat z helpa Accessa 97:
...Aby osiągnąć wyższy stopień optymalizacji, dla niektórych wyrażeń
złożonych program Microsoft Access używa technologii dostępu do danych
Rushmore wykorzystywanej przez aparat bazy danych Microsoft Jet...
Pozdrawiam
Grzegorz
Spróbuj więc z tabeli zawierającej 50 mln. rekordów znaleźć 1 rekord
spełniający
powiedzmy 5-6 warunków w Access'ie i FoxPRO.
Zobaczysz wtedy "moc" technologii Ruschmore z Access'a - jeśli się nie
zawiesi !
Pozdr,
Grzesiek
witek wrote:
2. pierwszy wiersz w excelu musi miec nazwy kolumn
Nie musi:
XLSConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=??????;" & _
"Extended Properties=Excel 8.0;" & _
"HDR=No;"
To może choć nieco sie podzielisz? Na przykład jak podłaczasz się do
Accessa z tego ADA95 (a nuż widelec kiedyś...) ? Albo jak jak
zabroniłes userom odkrywania obiektów ukrytych.
Bardzo chętnie:
Dostęp do bazy uzyskuję tak:
Open (DB_Control.Database,
"Provider=Microsoft.Jet.OLEDB.4.0; " &
"Data Source=d:paszp.mdb"&";Jet OLEDB:System Database=C:Program
FilesCommon FilesSYSTEMsystem.mdw"&";User Id="&text(kombo)
&";password="&text(haslo));
gdzie, text(kombo) i text(haslo) są stringami pobieranymi z okienka
logowania.
I w takim przypadku korzystam z kont użytkowników utworzonych w Accessie.
Ukrywanie obiektów zostawiłem w spokoju :).
Ps. Bardzo polecam to narzędzie programistyczne. Funkcjonuje na zasadzie
licencji
GPL i bez nakładów finansowych można robić różne ciekawe rzeczy, jak
chociażby
zaoszczędzić na licencjach Accessa w firmie.
Pozdrawiam.
szyg@szygula.prv.pl
Raz już zwracałem się do was z pytaniem o pomoc i otrzymałem rozwiązanie
problemu, mam nadzieję, że również tym razem mi pomożecie.
Mam baze w której jest pewna tabela. Problem polega na tym, że ni jak nie
mogę tej tabeli wyeksportować (Zapisz jaki, Eksportuj...) do innej bazy
danych, lub do Excela, ani nawet do txt.
Za każdym razem pisze mi komunikat:
Aparat bazy danych Microsoft Jet zatrzymał proces, ponieważ inny użytkownik
próbuje jednocześnie
zmienić te same dane.
Najdziwniejsze jest to, że żaden inny user nie otwiera tej bazy, leży ona na
moim dysku lokalnym który nie jest udostępniany.
Co jest nie tak z tą tabelą i jak to odkręcić ?
Pozdrawiam
Paweł Woźniak
Mam baze w której jest pewna tabela. Problem polega na tym, że ni jak nie
mogę tej tabeli wyeksportować (Zapisz jaki, Eksportuj...) do innej bazy
danych, lub do Excela, ani nawet do txt.
Za każdym razem pisze mi komunikat:
Aparat bazy danych Microsoft Jet zatrzymał proces, ponieważ inny użytkownik
próbuje jednocześnie
zmienić te same dane.
Najdziwniejsze jest to, że żaden inny user nie otwiera tej bazy, leży ona na
moim dysku lokalnym który nie jest udostępniany.
Co jest nie tak z tą tabelą i jak to odkręcić ?
Nie tylko inny użytkownik, lecz także inna instancja
Access-a, a nawet ta sama instancja w innym obiekcie,
może powodować taki komunikat. Poprawna interpretacja:
"Aparat bazy danych Microsoft Jet zatrzymał proces,
ponieważ COŚ próbuje jednocześnie zmienić te same dane."
Być może masz otwarty formularz (może ukryty), kwerendę,
lub recordset oparty na tej tabeli?
© 2009 Najlepszy miesiąc kawalerski w Polsce !!! - Ceske - Sjezdovky .cz. Design downloaded from free website templates