Oglądasz wypowiedzi znalezione dla frazy: Microsoft Jet 4.0





Temat: ODBC Error: The Microsoft Jet database engine cannot open the file '(unknown)'
Witam serdecznie,

Czy ktos moze spotkal sie z nastepujacym bledem:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine
cannot open the file '(unknown)'. It is already opened exclusively by
another user, or you need permission to view its data.

Blad pojawia sie po próbie odwolania do zródla danych ODBC z poziomu ASP
poprzez ADO. W przypadku odwolywania sie do tegoz samego zródla danych z
poziomu programu VisualBasic równiez za pomoca ADO wszystko jest OK.

Z góry dzieki za pomoc,
Tomek P.

Przeczytaj wszystkie posty z tego wątku



Temat: Problem z Microsoft Jet
Witam,

łączę się w moim programie przez Microsoft Jet i mam problem bo mój program
nie chce działać na innych komputerach. Pokazuje się błąd runtime 3706.
Sądzę że brakuje jakiś bibiotek których Kreator instalacji Visual Basic-a
nie dodaje. Co robić ?

Wesolutki :-)

Przeczytaj wszystkie posty z tego wątku



Temat: DAO, ADO i Microsoft JET
Czy korzystając z bazy accessowej (*.mdb) na nowym komputerze trzeba wpier
instalowac silnik Microsoft JET, czy moze wystarczy zabrac ze soba kilka
dll-lek (dao, ado) i bedzie wszystko grac ? Czy Install Wizard załatwi
sprawe (projekt ADO) ?

Z gory dzieki.

Pozdrowienia, Jacek Augustyniak

Przeczytaj wszystkie posty z tego wątku



Temat: ASp :::Microsoft JET Database Engine error '80004005' jak to naprawić
Jak w temacie co to może być
wyskakuje taki błąd jeżeli ktoś wejdzie na stronę napisaną w ASP
reszta jest Ok
Przeszukałem faq i nic nie ma a jak jest to nie to
Moje połaczenie z bazą access'a  wygląda tak
strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
Server.MapPath("./database/db2000.mdb") '##

Dzięki za wszelkie informacje
mergi

Przeczytaj wszystkie posty z tego wątku



Temat: Excel i Access
Witam

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

Przeczytaj wszystkie posty z tego wątku



Temat: ASP Niedopasowanie typu - problem


Niestety to o czym pisales nie pomoglo. Nie wiem znowu dlaczego. Jest
ciagle
ten sam blad: "Niedopasowanie typow".


Nie wiem na czym polega błąd, ja zrobiłem sobie test z Northwindem i u mnie
działa ok, kod:

Sub TestLateBindingAdo()
    Dim cnn, cmd, rst

    Set cnn = CreateObject("ADODB.Connection")
    cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=E:Northwind.mdb"

    cnn.Open

    Set cmd = CreateObject("ADODB.Command")
    cmd.CommandText = "[Sprzedaż wg pracowników i krajów]"
    cmd.CommandType = adCmdStoredProc
    cmd.ActiveConnection = cnn

    cmd.Parameters.Append cmd.CreateParameter( _
        "DataOd", adDate, adParamInput, 0, 0)
    cmd.Parameters.Append cmd.CreateParameter( _
        "DataDo", adDate, adParamInput, 0, 0)

    cmd.Parameters("DataOd") = #1/1/1998#
    cmd.Parameters("DataDo") = #1/5/1998#
    Set rst = cmd.Execute

    Do Until rst.EOF
        MsgBox rst.Fields(1)
        rst.MoveNext
    Loop

    rst.Close
    cnn.Close

    Set rst = Nothing
    Set cnn = Nothing
End Sub

Działa i jako kod w Accessie i jako np. skrypt vbs.
Pozdrawiam
Grzegorz

Przeczytaj wszystkie posty z tego wątku



Temat: ADO_Connection_Object.Open?


Nguyen Bang Giang wrote at Mittwoch, 8. Dezember 2004 09:58:

| Dim Object As ADODB.Connection

Czy "Object" nie jest przypadkiem zarezerwowanym slowem ?


Gdyby tak to też żaden problem, serwer Niusowy nie kompiluje listów :)


| Objekt.open "PROVIDER=Microsoft.Jet.OLEDB.4.0;" &_
|             "PWD=haslobazy;" & _
|             "DATA SOURCE=C:katalogaza.mdb;" & _
|             "Jet OLEDB:System database=C:katalogPlikMdw.mdw", _
|             "nazwa usera", "HasloUsera"

Zauwaz, ze haslo jest podawane dwa razy. W Connect-stringu
(PWD=haslobazy) i jako argument. Obawiam sie, ze haslo podane
jako argument przeslania haslo podane w connect-stringu (to samo
tyczy sie "UID=<user" i odp. argumentu)!


Nie, w ciągu połączenia podaje się hasło bazy a jako argument metody .open
podaje się hasło użytkownika


Czy ADO potrafi poprawnie obchodzic sie z haslem zalozonym
na baze z poziomu accessa (nie to w *.mdw) nie jestem pewien.


Tak, potrafi. Zobacz niżej


Obawiam sie jednak, ze PDW/Password w connect-stringu i odp. argument
nie maja z nim nic wspolnego.

Moze udloby sie jakos podac przez "Jet OLEDB:???=<haslo_bazy" ?
Np. "Jet OLEDB:Database Password=<haslo_bazy" ??? Give it a try :-)


No i to ... Nie wiem dlaczego tkwiło mi w głowie PWD= a nie JET OLEDB:Database
Password=

Bardzo ci dzięki

Pozdrawiam


Ciao, Smyk

Przeczytaj wszystkie posty z tego wątku



Temat: RecordCount

To 'baza.update' jest tu niepotrzebne bo zapisuje edycję recordseta, a nie


Dodałem to na wszelki wypadek
Oto kod:
Option Compare Database
Public baza As New ADODB.Recordset
Public con As New ADODB.Connection
Public sciezka As String

Private Sub Form_Close()
 baza.Close
End Sub

Private Sub Form_Current()

 Me![RekordB] = Me.CurrentRecord

End Sub
Private Sub Dodaj_Click()
On Error GoTo Err_Dodaj_Click

    DoCmd.GoToRecord , , acNewRec

Exit_Dodaj_Click:
    Exit Sub

Err_Dodaj_Click:
    MsgBox Err.Description
    Resume Exit_Dodaj_Click

End Sub

Private Sub Form_Open(Cancel As Integer)
sciezka = "Data Source = c:pracaaza est_wb.mdb;"

 con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & sciezka
  baza.Index = "ID1"
 baza.Open "tblKontrahent", con, adOpenKeyset, adLockOptimistic, adCmdTable

   Me![RekordW] = baza.RecordCount
End Sub

Private Sub Zapisz_Click()
On Error GoTo Err_Zapisz_Click

    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
    baza.Requery
     Me![RekordW] = baza.RecordCount
Exit_Zapisz_Click:
    Exit Sub

Err_Zapisz_Click:
    MsgBox Err.Description
    Resume Exit_Zapisz_Click

End Sub
Private Sub Cofnij_Click()
On Error GoTo Err_Cofnij_Click

    DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70

Exit_Cofnij_Click:
    Exit Sub

Err_Cofnij_Click:
    MsgBox Err.Description
    Resume Exit_Cofnij_Click

End Sub

Co śmieszniejsze jak dwa razy kliknę na zapisz rekord to recordcount
zaktualizuje się poprawnie.
Jarek

Przeczytaj wszystkie posty z tego wątku



Temat: Uruchomienie *.mdb bez Accessa????
Hej,
czy ktoś mi poradzi jak uruchomić bazę pod win98, ale bez instalowania MS
Access.
albo skąd wziąć instalkę "Microsoft Jet 4.0"
Przeczytaj wszystkie posty z tego wątku



Temat: problem z przypisaniem uprawnien
mam cos takiego
procedurka tworzy nowa grupe przydziela ja do niej userów ale nie
chce przypisac uprawnien do wybranej kwerendy, procedure odpalam
spoza pliku w którym jest owa kwerenda co robie zle
nie dziala przypisywanie uprawnien zarówno AOOX'em jak i DML'em
procedura nie wywala bledów

  Dim conn As ADODB.Connection
  Dim txt As String
  Dim txt2 As String
    Dim cat As New ADOX.Catalog
    Dim KontoUser As ADOX.User

  txt = "c:Program Filesprogsfronton.mde"
  txt2 = "h:azaaza.mdw"

      Set conn = New ADODB.Connection
    With conn
      .Provider = "Microsoft.Jet.OLEDB.4.0; "
      .ConnectionString = "Data Source=" & txt & "; Jet OLEDB:System
Database=" & txt2 & ";"
      .Open , "admin", "haslo"
    End With

  cat.ActiveConnection = conn

    txt = "create group NowaGrupa 213d23112a"
  conn.Execute txt

If MsgBox("DML = tak, ADOX= Nie", vbYesNo, "") = vbYes Then

    txt = "grant select, delete, insert, update on kwerenda1 to
NowaGrupa"
  conn.Execute txt

Else

  cat.Groups("NowaGrupa").SetPermissions "kwerenda1", _
          adPermObjTable, adAccessGrant, adRightRead Or adRightInsert
Or adRightDelete

End If

  For Each KontoUser In cat.Users
      txt = "add user   " & KontoUser.Name & "   to NowaGrupa"
    conn.Execute txt
  Next

  conn.Close
  Set conn = Nothing

Przeczytaj wszystkie posty z tego wątku



Temat: jak wykonac kwerende funkcjonalna na serwerze?
On Jan 26, 12:43 pm, "Grzegorz Danowski"


<gdn__na@serwerze__poczta.onet.plwrote:

| czy da sie i jak to mozna zrobic, zeby user mogl uruchomic kwerende
| aktualizujaca, ktora wykona sie na serwerze (na dwoch tabelach
| zalaczonych, ktore znajduja sie wlasnie na serwerze)? Chodzi mi o cos
| takiego jak kwerenda przekazujaca w przypadku kw. wybierajacych.

A kwerenda przekazująca czemu nie może być?


no, czuje w takim razie, ze chyba musze rzetelnie przedstawic
problem :)

Na serwerze DB chodzi sobie Sybase. Na tym samym na serwerze jest baza
Accessa. W tej bazie Accessa jest kilka tabel czysto accessowych, a
reszta jest zalaczona przez ODBC wlasnie z Sybase'a.
User na frontendzie na stacji lokalnej ma te same tabele, tylko
wszystkie sa juz zalaczone (Sybase'owe przez ODBC, a accessowe
bezposrednio).
User zmienia pewne dane w accessowej tabeli i pozniej kwerenda
aktualizuje odpowiednie pola w innej tabeli (wlasnie Sybase'a). Jesli
robi to kwerenda na stacji lokalnej, to trwa to kilka minut. Dlatego
chcialbym przerzucic wykonywanie tej kwerendy na serwer.

Oto, co robie:
1. tworze kwerende przekazujaca aktualizujaca (update ... set.. );
2. wchodze we wlasciwosci kwerendy, podaje nazwe polaczenia odbc do
bazy accessowej na serwerze (bo tylko ta widzi zarowno tabele
accessowa i sybase'owa);
3. wciskam enter i dostaje msgbox, ze "Nie mozna uzywac ODBC do
importowania, eksportowania lub dolaczania do bazy danych tabeli z
zewnetrznej bazy danych Microsoft Jet lub ISAM."

Ot, cala historia. Ja bym chetnie postawil te kwerende na backendzie
(tam wykonuje sie blyskawicznie), ale jak ja uruchomic za pomoca
frontendu? Pierwszym pomyslem byla kwerenda przekazujaca, ale sie
wykrzaczyla, stad moja prosba o rade.

Dzieki.

Przeczytaj wszystkie posty z tego wątku



Temat: Problem z metodą ExportXML
Jest jeszcze jeden problem
Po przeprowadzonym eksporcie do XML'a chciałem w tabeli TypyWyrobow do
pola DataExp wprowadzić w tle datę wykonania tej operacji (informacja,
żeby nie wykonywać dla konkretnego NrTypu eksportu po raz drugi).
Poniżej podaję kod funkcji:

Private Sub ExportXML_Click()
On Error GoTo Err_ExportXML_Click
Dim CurConn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim CurDB As Database

Application.ExportXML _
    ObjectType:=acExportQuery, _
    DataSource:="XMLtechnologia", _
    DataTarget:="d:DokumentybyszekTabele bazyXMLTechnologia.xml"

Application.ExportXML _
    ObjectType:=acExportQuery, _
    DataSource:="XMLczynnosci", _
    DataTarget:="d:DokumentybyszekTabele bazyXMLCzynnosci.xml"

Application.ExportXML _
    ObjectType:=acExportQuery, _
    DataSource:="XMLzasoby", _
    DataTarget:="d:DokumentybyszekTabele bazyXMLasoby.xml"

Set CurDB = CurrentDb
Set CurConn = New ADODB.Connection
With CurConn
    .Provider = "Microsoft.Jet.OLEDB.4.0"
    .ConectionString = "data source = d:DokumentybyszekTabele bazy
" & CurDB.Name
    .Open
End With
Set rst = New ADODB.Recordset
rst.CursorType = adOpenDynamic
rst.LockType = adLockBatchOptimistic
rst.Open "SELECT * FROM TypyWyrobow WHERE [NrTypu] = '" & _
        Form![TypyWyrobowExportXML].[NrTypu] & "'", CurConn, , ,
adCmdText
rst![DataExp] = Date
rst.Update
rst.Close
Exit_ExportXML_Click:
    Exit Sub

Err_ExportXML_Click:
    MsgBox Err.Description
    Resume Exit_ExportXML_Click

Po uruchomieniu wyrzuca błąd "Object doesn't support named arguments"
Może ktoś wskaże co zrobiłem źle?

Przeczytaj wszystkie posty z tego wątku



Temat: Create Table MDB


Krzysztof napisał(a):

| przeszukałem dysk i nie znalazłem żadnego pliku z rozrzedzeniem *.udl ???

utwórz notatnikiem pusty plik tekstowy, a następnie zmień rozszerzenie
na ****.udl kliknij na ten plik, a dalej jak kreator poprowadzi

---
avast! antywirus: Wychodzace wiadomosc czysta.
Baza sygnatur wirusow (VPS): 0602-4, 2006-01-14
Przetestowano na: 2006-01-14 14:27:06
avast! - Copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com


Zrobiłem jak radziłeś ... faktycznie odpalił się kreator którym posłużyłem
się do utworzenia pustej bazy mdb.

później zastosowałem kod:

OleDbConnection^ con;

con = gcnew OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;Data source =
"".\data\Test.mdb;Jet OLEDB:Engine Type=5;");

MessageBox::Show("OLE DB","Próba mikrofonu",
MessageBoxButtons::OKCancel,MessageBoxIcon::Asterisk);

con-Open();

String^ sql =

"Create Table MojaTabelka("

" Imie VarChar(20),"

" Nazwisko Varchar(30)" ")";

OleDbCommand^ myCom = gcnew OleDbCommand(sql, con);

myCom-ExecuteNonQuery();

MessageBox::Show("OLE DB","Próba mikrofonu 2",
MessageBoxButtons::OKCancel,MessageBoxIcon::Asterisk);

con-Close();

No i działa !!!!!!!!!!!!!!!!

ale .... chciałem troszke inaczej zrobić , chociaż to jest już duży postęp
:-) chciałem baze utworzyć w swoim programie sprawdzając najpierw czy
istnieje ... jeżeli nie istnieje to tworze pustą baze ... tworząc ją swoim
programem nie korzystając z zewnętrznych kreatorów.

dzięki za pomoc

Przeczytaj wszystkie posty z tego wątku



Temat: Create Table MDB
Krzysztof napisał(a):

| Krzysztof napisał(a):

| przeszukałem dysk i nie znalazłem żadnego pliku z rozrzedzeniem *.udl ???

| utwórz notatnikiem pusty plik tekstowy, a następnie zmień rozszerzenie
| na ****.udl kliknij na ten plik, a dalej jak kreator poprowadzi

| ---
| avast! antywirus: Wychodzace wiadomosc czysta.
| Baza sygnatur wirusow (VPS): 0602-4, 2006-01-14
| Przetestowano na: 2006-01-14 14:27:06
| avast! - Copyright (c) 1988-2005 ALWIL Software.
| http://www.avast.com

Zrobiłem jak radziłeś ... faktycznie odpalił się kreator którym posłużyłem
się do utworzenia pustej bazy mdb.

później zastosowałem kod:

OleDbConnection^ con;

con = gcnew OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;Data source =
"".\data\Test.mdb;Jet OLEDB:Engine Type=5;");

MessageBox::Show("OLE DB","Próba mikrofonu",
MessageBoxButtons::OKCancel,MessageBoxIcon::Asterisk);

con-Open();

String^ sql =

"Create Table MojaTabelka("

" Imie VarChar(20),"

" Nazwisko Varchar(30)" ")";

OleDbCommand^ myCom = gcnew OleDbCommand(sql, con);

myCom-ExecuteNonQuery();

MessageBox::Show("OLE DB","Próba mikrofonu 2",
MessageBoxButtons::OKCancel,MessageBoxIcon::Asterisk);

con-Close();

No i działa !!!!!!!!!!!!!!!!

ale .... chciałem troszke inaczej zrobić , chociaż to jest już duży postęp
:-) chciałem baze utworzyć w swoim programie sprawdzając najpierw czy
istnieje ... jeżeli nie istnieje to tworze pustą baze ... tworząc ją swoim
programem nie korzystając z zewnętrznych kreatorów.

dzięki za pomoc


wystarczy odwołać się w kodzie do tego pliku który utworzyłeś
Jak to zrobić? F1

---
avast! antywirus: Wychodzace wiadomosc czysta.
Baza sygnatur wirusow (VPS): 0602-4, 2006-01-14
Przetestowano na: 2006-01-14 15:41:05
avast! - Copyright (c) 1988-2005 ALWIL Software.
http://www.avast.com

Przeczytaj wszystkie posty z tego wątku



Temat: ASP - NetWare4 - IIS5.0 - ADODB - hmmm...
[1]
"Provider=MSDASQL;DSN=<dsnName;
 UID=<userName;PWD=<userPassword;"

Taki jest obecnie DSN systemowy, z którego korzysta strona ASP

[2]
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=<databaseName;
 User ID=<userName;Password=<userPassword;"


Taki jest obecnie DSN, z którego korzysta SQL Server, "zasysając" dane z
pliku mdb do tabeli na serwerze.

Sadzac po Twojej poprzedniej wypowiedzi uzywasz [2] ?
Testowales z [1] ?


ZANIM zainstalowałem sql-servera próbowałem zarówno [1] jak i [2]
uid i pwd dawałem puste/puste lub sa/puste lub admin/puste (nie używam
zabezpieczeń bazy, nie mam pliku grupy roboczej)

Ale COŚ już wiem:
- po zainstalowaniu MSSQL2000 (tego z pakietu XP Developer) dodałem
DTS-a,
który "zasysa" dane z tabeli accessowej do lokalnej tabeli sql-servera -
i
ten dts działa elegancko niezależnie od konwencji wołania pliku
(oczywiście
w DSN-ie zmieniłem odwołanie z accessowego na sql-serverowe - i ASP
działa
piknie bez żadnych modyfikacji :D)

To tak troche, jak bys wynajmowal ciezarowke,
aby przewiezc cegeilke !?


Hm, póki co cegiełki nosimy ręcznie, ale ostatnio szef stwierdził, że przy
takiej ilości cegiełek ciężarówka będzie niezbędna - to jest wstępna
przymiarka (trening? zapoznanie?) do łączenia się z sql-serverem, co czeka
mnie prędzej czy później i raczej prędzej niż później :)

- jednakowoż jeżeli tego DTS-a umieszczę w job'ie (DTS prawomysz =
"schedule") to już nie działa (jest komunikat ODBC że ścieżka
P:DANEDCOMMON.MDB jest nieprawidłowa, to samo jeżeli podam "pełną"
ścieżkę
przez serwer - a dla pliku lokalnego działa)

To teraz juz calkiem nie wiem, co uzywasz [1] czy [2] ?


no, teraz już wiesz :)

Well... coś mi mówi że to nie jest sprawa bazodańcza tylko systemowa
(nie
wiem czegoś o Windzie)

Access od zawsze mial problemy z wolumenami novell'a.
Ale

  ...
  conn.open "dsn=" & dsn & ";uid=sa;pwd="
  set rs=Server.CreateObject("ADODB.Recordset")
  rs.Open tn, conn
  ...
dziala, jak uzyjesz tego bezposrednio z kodu/modulu w Access'ie ?


O, nie próbowałem :)

Przeczytaj wszystkie posty z tego wątku



Temat: A problem occured while Microsoft Access

M. napisał(a):
Witam wszystkich!

Mam baze danych stworzona w MS Access 2003 ktora dziala poprawnie w
Windowsie 2000. Ta baza danych zwraca mi nastepujacy blad w Windowsie XP
(tez ACC2003):

"The expression On Load you entered as the event property setting
produced the following error: A problem occured while Microsoft Access
was communicating with the Ole server or ActiveX Control" Otrzymuje
rowniez podobne bledy w zdarzeniu OnLoad, OnClick itd. z tym samym
komunikatem:
"The expression...Ole server or ActiveX control" Mam zainstalowana
najnowsza wersje Microsoft Jet 8.0 SP na WinXP. Mam wszystkie odwolania
aktywne w oknie referencji VB. Nie ma zadnych brakujacych odwolan w
kodzie formularza ktorego otwiera zarowno w WinXP i Win2000.

Kiedy kompiluje kod vb nie wyswietla mi zadnego bledy czyli wszystko jest
ok z kodem.

Czyżby???
To wcale nie oznacza, że masz poprawny kod. Ot weźmy taki przykład:
Dim obj As Object
Set obj = New Excel.Application
Debug.Print dbj.pupa
Debbuger przełknie, w trakcie nie pójdzie. Dlaczego? Np. dlatego, że
nie ma Excela, albo excel jest, ale nie ma właściwości pupa.

Opis błędu sugeruje co może być nie tak: np. kontrolka ActiveX.
Jeśli powiesz jeszcze w jakiej linijce wywala błąd oraz jakie nietypowe
kontrolki masz na formularzu, podpowiemy co powoduje błąd.

Blazek

No wlasnie problem w tym jest ze kompilator nie wyrzuca bledu w zadnej z
linijek
tylko wyrzuca ogolne bledy przy wywolaniu procedur OnLoad OnClick:

"The expression On Load you entered as the event property setting
produced the following error: A problem occured while Microsoft Access
was communicating with the Ole server or ActiveX Control"

Kompilatorowi nie podoba sie zadna z procedur. Jestem przekonany, ze
procedury
sa dobrze napisane, bo zawsze jest stosowalem i nigdy nie mialem z nimi
problemow.

Naprawde nie wiem co moze byc przyczyna. Zapomnialem tez napisac ze mam
tez zainstalowanego MDACa

M.

Przeczytaj wszystkie posty z tego wątku



Temat: baza wielostanowiskowa
Użytkownik "Michał Kożusznik" <ma@prezentacje.no.spam.net napisał

| A teraz znów mniejszą. Ale to może dlatego ze jestem "pod wpływem" jako że
| zdałem exam z MOwNiTu (Metody Obliczeniowe)
| Oto dalszy cytat z MSDN. MOgę prosić o interpretację?
|
| "When record-level locking is on, data edited through Access forms and
| datasheets will use record-level locking. Also, Recordset objects opened by
| using the DAO OpenRecordset method, and any ADO methods (when you use the
| Microsoft Jet 4.0 OLE DB provider) that open or return a Recordset object
| will use record-level locking. However, any SQL Data Manipulation Language
| (DML) queries - that is, queries that add, delete, or modify records - that
| are run from ADO (when you use the Microsoft Jet 4.0 OLE DB Provider), DAO,
| or the Access query user interface will use page-level locking. Page-level
| locking is used for SQL DML statements to improve performance when you are
| working with many records. However, even when record-level locking is turned
| on, it is not used for updates to values in memo fields and values in fields
| that are indexed - they still require page-level locking. "

Michał, a w czym problem, poza teoretycznym ?
Mówią Ci: począwszy od Jet 4.0 masz blokowanie na poziomie rekordu
(innymi słowy, ktoś coś gmerający w sąsiednim rekordzie nie blokuje Twoich wypocin
...)

Ale - niestety - nie dotyczy to kwerend funkcyjnych bo one chodzą po stronach !
A co to jest strona ? to taki minimalny kawałek (2k lub 4kB)
Jest to stosunkowo tak niewielki kawałek (zwłaszcza ze względu na sposób organizacji
danych przez Access'a), że obsługa błędu praktycznie niczym się nie różni od tej gdy
blokowanie zachodzi na poziomie rekordu...)

Co najwyżej błąd wystąpi nieco częściej ...

Przeczytaj wszystkie posty z tego wątku



Temat: SQL Tabela
Dnia 26-01-2006 o 00:28:37 Kris <mat@wp.plnapisał:


| Dnia Wed, 25 Jan 2006 23:31:56 +0100, Kris napisaÂł(a):

| PróbujĂŞ coÂś napisaĂŚ korzystajÂąc z ADO.NET (VS 2005 C++) i muszĂŞ  
| sprawdziĂŚ
| w
| mojej utworzonej przez program bazie istnieje tabela o jakiejÂś tam
| nazwie.

| No to nie moÂżna byÂło od razu pisaĂŚ Âże chodzi o .NET? Chyba ntg (to jest
| grupa Accesowo - VBA-owa), ale jakbyÂś spróbowaÂł analogicznie do tego:

| Dim cn As New Data.OleDb.OleDbConnection

| cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=<tu
| ÂścieÂżka do mdb;Persist Security Info=True"

| Dim cmd As New Data.OleDb.OleDbCommand("select * from <tu nazwa  
| tabeli",
| cn)
| cmd.Connection.Open()
| Try
| cmd.ExecuteReader()
| MsgBox("jest!")
| Catch ex As Exception
|        MsgBox("dupa :(")
| End Try
| cmd.Connection.Close()

| to moÂże by Ci coÂś z tego wyszÂło...

| MoÂże to nie jest najpiĂŞkniejszy kawaÂłek kodu w .net, ale ja w tym nie
| siedzĂŞ wcale a wcale - ile umiaÂłem tyle pomogÂłem :)

| --
| PL

.NET to nie tylko VB !!!!

To  tez np. C++, Java, C#  ...  jakbym chcial zapytac o .NET to nie  
pytalbym
tutaj  (mam nadzieje ze rozumiesz to :-))   zapytalem wyraznie o SQL na
grupie access !!!!!!!!!! i zapewniem Cie ze wim co robie !!!! nie odzywaj
sie !!!! prosilem cie juz o to !!!! ale dziĂŞki momo wszysto za proby
pokonania kompleksów jak napisal Przemak


SQL to kiepski pomysł dla JET, lepszy to ADOX

Przeczytaj wszystkie posty z tego wątku



Temat: SQL Tabela


Dnia 26-01-2006 o 00:28:37 Kris <mat@wp.plnapisał:

| | Dnia Wed, 25 Jan 2006 23:31:56 +0100, Kris napisa3(a):

| Próbuje co? napisaa korzystaj?c z ADO.NET (VS 2005 C++) i musze
| sprawdzia
| w
| mojej utworzonej przez program bazie istnieje tabela o jakiej? tam
| nazwie.

| No to nie mo?na by3o od razu pisaa ?e chodzi o .NET? Chyba ntg (to jest
| grupa Accesowo - VBA-owa), ale jakby? spróbowa3 analogicznie do tego:

| Dim cn As New Data.OleDb.OleDbConnection

| cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=<tu
| ?cie?ka do mdb;Persist Security Info=True"

| Dim cmd As New Data.OleDb.OleDbCommand("select * from <tu nazwa
| tabeli",
| cn)
| cmd.Connection.Open()
| Try
| cmd.ExecuteReader()
| MsgBox("jest!")
| Catch ex As Exception
|        MsgBox("dupa :(")
| End Try
| cmd.Connection.Close()

| to mo?e by Ci co? z tego wysz3o...

| Mo?e to nie jest najpiekniejszy kawa3ek kodu w .net, ale ja w tym nie
| siedze wcale a wcale - ile umia3em tyle pomog3em :)

| --
| PL

| .NET to nie tylko VB !!!!

| To  tez np. C++, Java, C#  ...  jakbym chcial zapytac o .NET to nie
| pytalbym
| tutaj  (mam nadzieje ze rozumiesz to :-))   zapytalem wyraznie o SQL na
| grupie access !!!!!!!!!! i zapewniem Cie ze wim co robie !!!! nie odzywaj
| sie !!!! prosilem cie juz o to !!!! ale dzieki momo wszysto za proby
| pokonania kompleksów jak napisal Przemak

SQL to kiepski pomysł dla JET, lepszy to ADOX

--
Używam programu pocztowego Opery: http://www.opera.com/mail/


zdania sa podzielone jezeli chodzi o ADOX

"
Natomiast biblioteka ADOX miała być obiektowym interfejsem dostępu do
struktury bazy. Najpierw do baz Jeta, potem pojawiła się możliwość pracy na
innych bazach np. MS SQL. Jednak w tej chwili nie jest już rozwijana i z
tego co wiem MS odchodzi od tej koncepcji.

"

Przeczytaj wszystkie posty z tego wątku



Temat: Access + zdjęcia (Uwaga: mocno przygługawe)


BraZby wrote:
| Innym rozwiązaniem jest nowy formularz z opisem a potem odświeżenie
| html'a. Ale wtedy powstaje problem jak do Access'a przekazać, która
| miniaturka została kliknięta?
| {tu poprzednie wyciąłem bo chyba niedobre w tym kontekście}

| Macie jakieś pomysły?

Tak nieśmiało zaproponuję, (z całym bagażem ograniczeń):

[...]

<SCRIPT LANGUAGE=VBScript
dim oRs, SQL, dsn
Private Sub Zapisz()
set oRs = CreateObject("ADODB.Recordset")

dsn="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:Proba.mdb"
SQL="SELECT Tabela1.a  FROM Tabela1;"
oRS.Open SQL, dsn, 2, 3

oRS.Fields("a")="ble ble ble"

oRs.Update
MsgBox oRS.Fields("a")

oRs.close
set oRs=Nothing

End Sub
</SCRIPT

Polskie ogonki w stringu " ble ble ą ble"
cosik powodują, że rekord się nie aktualizuje.
testowane tylko z Notatnika (przed i po konwersji na  iso-8859-2).

Tak mi się tylko nasunęło.


Dzięki za ten kawałek kodu, właśnie tak mi dzwoniło w głowie. Zastanawiam
się jak ukryć ten kod bo juzer może przecież podejrzeć source HTML'a. A
umieszczenie kodu w zewnętrznym pliku (.vbs?) chyba nie załatwia sprawy.
Wpadłem też na pomysł by otwierać zwykły formularz a detalami. Juzer klika
na miniaturkę, co powoduje umieszczenie jej id w jakimś input boxie ("IB1")
html'a. Potrafię odczytać jej zawartość w access, np:
me!web.document.all.IB1.value
ale wymaga to dodatkowego kliknięcia na jakiś baton na formularzu. to jakby
zbędna operacja. lepiej by było jakoś przechwycić zdarzenie click obrazka w
kontolce web i obsłużyć je w access. nie wiem czy to możliwe. muszę już
palić gumę.

aha, cały czas grzebię w kodzie tworzącym thumby, próbowałem z jpg o różnych
bit per point (4,8,24,32) i raczej nie było problemów. Problem to bitmapy o
dużych gabarytach bo nie można np. utworzyć ich przy pomocy
Createcomaptiblebitamp. ale musze kończyć, może wieczorem dopiszę coś. sorry
że tak chaotycznie.

dzięki za wszystko.

Przeczytaj wszystkie posty z tego wątku



Temat: import kursów ze strony NBP
On 24.11.2003 22:22, Krzysztof Naworyta schrieb:

cóż, kiedy mi cholera nie działa :-(
"Błąd wewnętrzny internetu !"
Wyłączyłem Firewall'a ale to nie to ...
[...]
W każdym bądź razie podanie adresu internetowego w ciągu Database nie jest
pozbawione logiki - jesli wierzyć innym - to powinno działać !
Tylko dlaczego nie działa ???


Nie dziala nawet wtedy gdy chcesz otworzyc lokalny plik
uzywajac protokolu file://. Udaje sie dopiero gdy podasz
zwykla DOS'owa sciezke + nazwe pliku:

Sub TestHTMLDb()

  Dim db As DAO.Database
  Dim rs As DAO.Recordset
  Dim strUrl$
  Dim strSQL$

  strUrl = "E:installjethtmlisammsflex.htm"
  '-- strUrl = "file:///E:/install/jethtmlisam/msflex.htm"
  '-- strUrl = "http://www.posmykowizna.de/access/msflex.htm"

  Set db = Workspaces(0).OpenDatabase("", True, True, _
     "HTML Import;HDR=YES;IMEX=2;DATABASE=" & strUrl)

  strSQL = " select * from Country"
  Set rs = db.OpenRecordset(strSQL, dbOpenSnapshot)

  Stop '-- tu sobie poogladaj recordset

  rs.Close: Set rs = Nothing
  db.Close: Set db = Nothing

End Sub

Sub TestHTMLDbAdo()

  Dim rs As ADODB.Recordset
  Dim cn As ADODB.Connection
  Dim strUrl$

  strUrl = "E:installjethtmlisammsflex.htm"
  '-- strUrl = "file:///E:/install/jethtmlisam/msflex.htm"
  '-- strUrl = "http://www.posmykowizna.de/access/msflex.htm"

  Set cn = New ADODB.Connection
  cn.CursorLocation = adUseClient
  cn.Open "Provider=Microsoft.Jet.Oledb.4.0;" & _
          "Data Source=" & strUrl & ";" & _
          "Extended Properties=""HTML Import;HDR=YES;IMEX=2"";"

  Set rs = New ADODB.Recordset
  rs.Open " select * from Country ", cn, adOpenStatic, adLockOptimistic

  Stop '-- tu sobie poogladaj recordset

  rs.Close: Set rs = Nothing
  cn.Close: Set cn = Nothing

End Sub

Czy już na zawsze skazani jesteśmy na tego smykowego eksemela ???


Fakty mowia same za siebie ;-P
:-D

Ciao, Smyk

Przeczytaj wszystkie posty z tego wątku



Temat: DBGRid, DBRadio i "row cannt be located for updating"
Używam Access 2003 i Delphi 7, MDAC 2.8 SP1, do Connection

wykorzystuję "Microsoft.Jet.OLEDB.4.0".

Mam kilka tabel, które są ze sobą w relacji jeden do wielu.
W uproszczeniu wygląda to tak:

Tabela1
1) Id1 (indeks bez powtórzeń, autoinc)
2) T1Kol1

Tabela2
1) Id1 (indeks z powtórzeniami)
2) Id2 (indeks bez powtórzeń, autoinc)
3) T2Kol1
....

Tabela3
1) Id2 (indeks z powtórzeniami)
2) Id3 (indeks bez powtórzeń, autoinc)
3) T3Kol1
.....

Tabela1.Id1 wiąże się z Tabela2 poprzez Tabela2.Id1
Tabela2.Id2 wiąże się z Tabela3 poprzez Tabela3.Id2

Mam DBGRid, w którym wyświetlane są wartości z Tabela1. Z każdym

takim rekordem jest związanych kilka wielkości z Tabela2 i 3

(T2Kol1, T3Kol1,...). Każdą taką wartość zmieniam za pomocą

skojarzonych przełączników DBRadio. Przeglądam DBGrid i edytuję

poszczególne wartości (T2Kol1, T3Kol1,...) poprzez przełączniki

DBRadio. Kod OnClick dla DBRadio jest taki:

"ADOTable3.Edit;
 ADOTable3.FieldByName('T2Kol1').AsInteger :=
    StrToInt(T2Kol1DBRadio.Values[T2Kol1DBRadio.ItemIndex]);
 ADOTable3.Post;"

Wówczas, co pewien bliżej nie określony i trudny do przewidzenia

czas, podczas zmiany wartości DBRadio pojawia się błąd:
"Row cannot be located for updating. Some values may have been

changed since it was last read."

Od tego momentu każde praktycznie kliknięcie na DBGrid czy DBRadio

generuje ten sam błąd. Pomaga tylko ponowne uruchomienie programu.

W czym tkwi problem?
Czy jest to problem z komponentami Delphi DBGrid, DBRadio?
Czy jest to problem z bibliotekami, komponentami Windows?

Z góry dziękuję za pomoc
Konrad

Przeczytaj wszystkie posty z tego wątku



Temat: Jak otworzyć zablokowaną bazę danych w MS Access 2003
Nie mogę otworzyć bazy danych zamiast jej uruchomienia wyswietla się
komunikat "Aparat baz danych Microsoft Jet zatrzymał proces, ponieważ
inny użytkownik próbuje jednocześnie zmienić te same dane. (Błąd
3197)" jak sobie z tym poradzić?
Przeczytaj wszystkie posty z tego wątku



Temat: Changepassword
Witam!

Do poniższej procedury zmiany hasła zalogowanego użytkownika podaję 3
parametry: stare hasło i drukrotnie nowe. Co ciekawe bez podania starego
hasła też działa. Pytanie czy tak powinno być, skoro parametr stare hasło
procedury changepassword jest obowiązkowy chociaż może być pusty "", ale
tylko w przypadku gdy user nie ma hasła.

robert

Private Sub cmdZmien_Click()
On Error GoTo Err_cmdZmien_Click
Dim cat1 As New ADOX.Catalog
Dim usr As String
Dim a As Variant
Dim oldPas As String
Dim newPas1 As String

If IsNull(Me!Tekst6) Then
    oldPas = ""
Else
    oldPas = Me!Tekst6
End If
    a = StrComp(Me!Tekst0, Me!Tekst2, vbBinaryCompare)
    If IsNull(a) Then
        MsgBox "Musisz wpisać i potwierdzic nowe hasło", , "Uwaga"
    Else
        If a <0 Then
            MsgBox "Podane hasła nie są jednakowe", , "Uwaga"
            Me!Tekst0.SetFocus
        Else
            'podane hasła są równe
            usr = CurrentUser
            newPas1 = Me!Tekst0
            cat1.ActiveConnection = _
            "Provider=Microsoft.Jet.OLEDB.4.0;" & _
            "Data Source=" &
Mid(CurrentDb.TableDefs("tblPracownik").Connect, 11) & ";" & _
            "Jet OLEDB:System database=" & SystemDB() & ";" & _
            "User Id=aa;Password=aa;"
            cat1.Users(usr).ChangePassword oldPas, newPas1
            MsgBox "Hasło zostało zmienione", , "Potwierdzenie"
            DoCmd.Close
        End If

    End If

Exit_cmdZmien_Click:
    Exit Sub

Err_cmdZmien_Click:
    MsgBox Err.Number & " " & Err.Description
    Resume Exit_cmdZmien_Click

End Sub

Przeczytaj wszystkie posty z tego wątku



Temat: Cannot open the Microsoft Jet engine workgroup information file.
Po zainstalowaniu service pack 8 dla Jet 4 mam inny komunikat:
Nie można otowrzyć pliku informacyjnego grupy roboczejaparatu Microsoft
Jet.

...

Przeczytaj wszystkie posty z tego wątku



Temat: Czy to gdzieś jest napisane ? (jet, locks i tranzakcje)
Z moich eksperymentów wynika, że MS Jet
promuje lock z row-level do co najmniej page-level
po otwarciu tranzakcji przez użytkownika.

Jakie ma to znaczenie nie muszę chyba tłumaczyć ...

Mam pytanie: czy ktoś z grupowiczów spotkał
się z jakąś dokumentacją opisującą to 'zjawisko' ?
Proszę o konkretny link bo w MSDN, KB i gdzie
tylko się dało już szukałem.

Tomasz Jastrzębski

przykład:

'Const DBFile As String = _
"C:Program FilesMicrosoft Visual StudioVB98 wind.mdb"
Const DBFile As String = _
"C:Program FilesMicrosoft OfficeOfficeSamplesNorthwind.mdb"

Private cnn1 As New ADODB.Connection
Private rec1 As New ADODB.Recordset
Private cmd1 As New ADODB.Command

Private cnn2 As New ADODB.Connection
Private rec2 As New ADODB.Recordset
Private cmd2 As New ADODB.Command

Private Sub Form_Load()
    OpenConnection cnn1
    OpenRecordset cnn1, cmd1, rec1

    OpenConnection cnn2
    OpenRecordset cnn2, cmd2, rec2

    rec1.MoveFirst
    rec2.MoveLast

    cnn1.BeginTrans
    cnn2.BeginTrans

    rec1("PostalCode").Value = "60606": rec1.Update
    rec2("PostalCode").Value = "60607": rec2.Update 'error -2147467259
End Sub

Private Sub OpenConnection(ByRef cnn As ADODB.Connection)
'cnn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;" & _
"Persist Security Info=False;Initial Catalog=Northwind;Data Source=(local)"

cnn.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBFile

'cnn.Mode = adModeReadWrite
'cnn.Properties("Jet OLEDB:Database Locking Mode") = 1
cnn.Open
'cnn.Properties("Jet OLEDB:Lock Delay") = 1
'cnn.Properties("Jet OLEDB:Lock Retry") = 10
End Sub

Private Sub OpenRecordset(ByRef cnn As ADODB.Connection, _
ByRef cmd As ADODB.Command, ByRef rec As ADODB.Recordset)

Set cmd.ActiveConnection = cnn
cmd.CommandType = adCmdText
cmd.CommandText = "SELECT * FROM Suppliers"
rec.CursorLocation = adUseClient
rec.LockType = adLockOptimistic
rec.CursorType = adOpenStatic
Set rec.Source = cmd
'rec.Properties("Jet OLEDB:Locking Granularity") = 2
rec.Open
End Sub

Przeczytaj wszystkie posty z tego wątku



Temat: Oddwiezanie
Otwieram sabie połaczenie w  obszarze roboczym Microsoft Jet.
Jak sprawdzić że dodanie nowego rekordu lub aktualizacja rekordu została
zakończona?

Jeśli ktoś wie jak mi pomóc to dziękuję za pomoc

Pozdrawiam

Krystian

Przeczytaj wszystkie posty z tego wątku



Temat: MS Access2003-Błąd przy naciśnięciu przycisku na formularzu
Witam,

Access 2003
OS: win XP

Gdy używam bazy danych na domowym komputerze baza działa OK. Jednak,
gdy chcę uruchomić ją w pracy, przy naciśnięcia przycisku na
formularzu generowany jest poniższy błąd.

W oknie dialogowym błędu jest wyświetlany poniższy komunikat:

"Program Visual Basic for Applications (VBA) napotkał problem podczas
próby uzyskania dostępu do właściwości lub metody. Mógł wystąpić jeden
z następujących problemów:

Brakuje odwołania.
Aby uzyskać pomoc dotyczącą przywracania brakujących odwołań, zobacz
następujący artykuł z bazy wiedzy Microsoft Knowledge Base: 283806.
Wyrażenie zawiera błędy pisowni.
Sprawdź, czy wszystkie wyrażenia używane we właściwościach zdarzenia
mają poprawną pisownię.
Funkcja zdefiniowana przez użytkownika jest zadeklarowana w module
jako funkcja podrzędna lub prywatna.
Wyrażenia rozpoznają funkcje zdefiniowane przez użytkownika tylko
wtedy, gdy funkcja została zadeklarowana w jeden z następujących
sposobów:

Funkcja publiczna w module
Publiczna lub prywatna funkcja w module kodu bieżącego formularza lub
raportu
Poziom zabezpieczeń w programie Access jest ustawiony na średni lub
wysoki, a aktualizacja Microsoft Jet 4.0 SP8 nie została
zainstalowana.
Aby program Access działał poprawnie w sytuacji, gdy poziom
zabezpieczeń jest ustawiony na średni lub wysoki, należy zainstalować
nowszą wersję programu Jet 4.0. Aby uzyskać najnowszą wersję programu
Microsoft Jet, przejdź do witryny Windows Update"

Z czego może wynikać ten błąd?

Z góry dziękuję za pomoc.

Przeczytaj wszystkie posty z tego wątku



Temat: (ADO) Connection i Recordset


----- Original Message -----
From: <deark@wp.pl
To: <pl-comp-bazy-danych-msacc@newsgate.pl
Sent: Monday, August 12, 2002 4:27 AM
Subject: (ADO) Connection i Recordset

Pozdrawiam grupe.

Mam problem -probuje zmienic dane w tabeli polaczonej zacznajac kodem:

Dim cnn As Connection
Dim rstMain As New ADODB.Recordset
....
Set cnn = CurrentProject.Connection
rstMain.Open "main", cnn, adOpenKeyset, adLockOptimistic, adCmdTableDirect
cnn.BeginTrans
rstMain.Index = "idzadania"
....
Po tej linii dostaje komunikat:
"Obiekt lub dostawca nie moze wykonac zadanej operacji."

Tabela "main" oczywiscie istnieje w polaczonej bazie, a jaj kluczem
podstawowym
jest "idzadania".
Debug.Print Application.CurrentProject.FullName wyswietla sciezke
aplikacji, a
nie pliku z
tabelami, wiec podejrzewam, ze chodzi o otwarcie polaczenia do zewnetrznej
bazy
(gdy tabela jest w biezacej bazie wszystko dziala), ale niestety nie wiem
jak
to zrobic.
Posiadana literatura (wersja dla ubogich) nie udziela odpowiedzi na takie
pytanie, wiec
moja nadzieja w grupie. Bede wdzieczny.

Darek


Czesc
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
Pozdrowienia
jurekeme

Przeczytaj wszystkie posty z tego wątku



Temat: błąd przy otwieraniu bazy Accessa
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 możesz
wyświetlić.

--------------------------------------------------------------------------------

Należy spróbować następujących czynności:

Kliknij przycisk Odśwież lub spróbuj ponownie później.

Otwórz stronę główną localhost, a następnie szukaj łączy do informacji, których
potrzebujesz.
HTTP 500.100 - Wewnętrzny błąd serwera - błąd ASP
Internetowe usługi informacyjne

--------------------------------------------------------------------------------

Informacje techniczne (dla personelu obsługi)

Typ błędu:
Microsoft JET Database Engine (0x80040E4D)
Nie można uruchomić aplikacji. Plik informacyjny grupy roboczej nie istnieje
lub został otwarty w trybie wyłączności przez innego użytkownika.
/Sprzedaz.NET/rejestracja.asp, line 18

Typ przeglądarki:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)

Strona:
GET /Sprzedaz.NET/rejestracja.asp

Time:
17 lipca 2004, 20:38:33

Więcej informacji:
Pomoc techniczna Microsoft

Sprawdziłem - plik informacyjny grupy roboczej (System.mdw) istnieje i jest
poprawny.
Czy ktoś wie co może być przyczyną błędu i co z tym zrobić?
Dzięki za pomoc.

J.

Przeczytaj wszystkie posty z tego wątku



Temat: laczenie baz SQLServer6.5 i Access


"(c) Krzysztof P." <pozo@gazeta.plnapisał:
| (...)
| pytanie w ogole brzmi: jak wykonywac transakcje na wielu ROZNYCH
zrodlach
| danych (w moim przypadku tak jak powyzej - SQLServer6.5 + Access,
| transakcja
IHMO wydaje mi sie, ze nie da sie sensownie zrealizowac transakcji na
roznych zrodlach danych, wtedy sama realizacje transakcji musial by
wykonac sam Access. W przypadku dolaczenia tabeli z SQL'serwera nawet
nie ma zbytniego sensu, gdyz rezygnujemy w ten sposob z transakcji z
prawdziwego zdarzenia realizowanych przez serwer.
Rozwiazanie Krzysztofa jest o wiele czytelniejsze i pewniejsze.


Chciałbym dorzucić swoje trzy grosze.
W MS SQL 7.0 zastosowałem metode podłaczenia zewnętrznej bazy danych Access
: Umo.mdb jako LinkServer. Poniżej przedstawiam kod podłączenia:

---------------------------------------------------------------------
print 'Podlaczam lokalnie baze <UMOpromarz, w celu ulatwienia pracy nad
nia'
exec sp_dropserver 'UMO', 'droplogins'
exec sp_addlinkedserver @server = 'UMO', @provider =
'Microsoft.Jet.OLEDB.4.0', @srvproduct = '', @datasrc = 'M:UMOpromarz.mdb'
exec sp_addlinkedsrvlogin 'UMO', 'false', NULL, NULL, NULL
go
----------------------------------------------------------------------------
-
W bazie na SQL odwołuje sie do tabel z Access jak do zewnetrznego -
zaprzyjaźnionego - servera MS SQL. przykładowy kod połączenia :

select * from Produkty p, UMO...Zlecenia z where
z.IdProduktu=p.IdProduktu

Oczywiście tabela Produktów jest w bierzącej bazie danych na MS SQL. Chodzi
to to całkiem znośnie. A transakcje - wykonuje bez zastrzerzeń.
Pozdrawiam
Krzysztof Kozłowski

PS. Nie pytajcie, gdzie sens w takim układzie tabel i baz, klient płaci,
klient wymaga. Poza tym to jest sytuacja przejściowa chwilowa - moim
zadaniem w firmie jest przewalenie całego serwisu na Oracle...

Przeczytaj wszystkie posty z tego wątku



Temat: Access 2003 w Delphi
Access 2003 w Delphi

1) W Delphi łączę się z bazą Access poprzez ADOConnection
(Provider Microsoft.Jet.OLEDB.4.0). Czy można w takim wypadku

wykorzystać dostępne w Access wildcars: "?", "*"? W zapytaniach SQL

w Delphi używam "_" i "%", wildcards z Access nie działają. Czy ten

fakt wpływa na szybkośc działania wyszukiwania z użyciem wildcards?

2) Bazy Access nie są Case Sensitive. Dodaję rekord do bazy.  Dodaję

wartość do kolumny, która ma klucz podstawowy (pole to ma założony

indeks bez powtórzeń), np: "Nowak". Jeśli w kolumnie tej jest już

słowo "nowak" (lub np: "nOWAK") jest to wychwytywane jako konflikt

(indeks bez powtórzeń).

Pytanie jest takie: czy w tym momencie baza danych jest ustawiana na

pozycji "nowak". Jeśli tak, to chciałem to wykorzystać to

odpowiedniej modyfikacji tego rekordu. Jeśli nie, to muszę, zdaje

się wykorzystać funkcję Locate aby ustawić bazę na tej pozycji i

dopiero dokonać odpowiedniej edycji rekordu (ale to zdaje się

2-krotnie wydłuża czas trwania operacji w porównaniu z udanym

wstawieniem nowego rekordu).
Takie wstawianie do bazy duplikatów zdarza mi się dosyć często (dane

są wczytywane z różnych plików tekstowych) i takie operacje mogą być

czasochłonne.

Jak w optymalny sposób obsłużyć zdarzenie aktualizacji rekordu przy

próbie wstawiania duplikatu?

3) W zapytaniu często wyszukuję rekordów, które mają w jednym z pól

tekstowych (typu Tekst) określony podciąg. Czy powinienem

zindeksować tę kolumnę, aby przyspieszyć działanie.

Jak powinno wyglądać optymalne zapytanie SQL w Delphi (jaki jest

optymalny kod: ADOQuery1.SQL.Add(?????????))?

Czy to samo można zastosować jeśli pole jest typu Nota, a nie tekst

(max 255 znaków)?

4) Dodawanie nowego rekordu.
Czy lepiej używać:

Form1.ADOQuery1.Append;
Form1.ADOQuery1.FieldByName('Column1').AsString := tekst;
Form1.ADOQuery1.Post;

czy odpowiedniej komendy SQL?

Przy tej okazji: po każdym Append wykonuję Post co na pewno wydłuża

proces. Jeżeli dodaję z pliku 1000 rekordów, to nie jest to

optymalne. Jak powinienem w takim razie postąpić. Czy komendę Post

powienienem wykonać tylko raz, już na samym końcu wczytywania z

pliku?

Z góry dziękuję za wszelką okazaną pomoc

Pozdrawiam
Konrad

Przeczytaj wszystkie posty z tego wątku



Temat: Import danych Excel - > Access
Witam

W jaki sposób można zaimportować dane pochodzące z pliku *.csv do
tabel w Access-ie? Nie chce importować przez:
[Plik] - [Pobierz dane zewnetrzne] - [Importuj], itd.
Stworzyłem formularz w accesie, chcę oprogramować przycisk, który
zaimportuje dane do tabeli.

Mnie jak narazie udało się oprogramować przycisk, który importuje dane
pochodzące z pliku *.txt do bazy danych Access. Czyli niby jestem
blisko.
Niestety dane wejściowe mam w formacie *.csv i dlatego stanałem przed
tym dylematem.

Pytania dot. tego co jest powyżej:
1. Czy można zaimportować dane z pliku *.cvs do tabeli w bazie Access?
Jezeli tak to czy mogłbym poprosić o podpowiedź w jaki spsoób
oprogramowac przycisk na formularzu, który zaimportuje dane w formacie
*.cvs.

2. Jeżeli nie istnieje możliwość z pkt 1 to w jaki sposób wygenerować
z pliku o formacie *.csv plik formatu *.txt, który będzie wyglądał
następująco:

A/0129;69050814494;MICHEL;KRZYSZTOF;M;57550;STRONIE ŚLĄSKIE;

gdzie średniki oddzielają poszczególne kolumny pochodzące z pliku csv.
To jest przykładowa jedna linia, linii oczywiście będzie więcej.

3. Jak wywołać okno do wczytania pliku. Jak narazie wczytanie danych
wejściowych odbywa się w sposób poniższy, czyli po wskazaniu ściezki
dostępu.

objConnection.Open _
    "Provider = Microsoft.Jet.OLEDB.4.0; " & _
        "Data Source = C:XXXxxx.mdb"

objRecordSet.Open "SELECT * FROM tabela1", _
    objConnection, adOpenStatic, adLockOptimistic

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:folder_xxxplik_xxx.txt")

Przeczytaj wszystkie posty z tego wątku



Temat: Import danych Excel - > Access
On 13 Cze, 21:26, tomeq <tomeq1@o2.plwrote:


Witam

W jaki sposób można zaimportować dane pochodzące z pliku *.csv do
tabel w Access-ie? Nie chce importować przez:
[Plik] - [Pobierz dane zewnetrzne] - [Importuj], itd.
Stworzyłem formularz w accesie, chcę oprogramować przycisk, który
zaimportuje dane do tabeli.

Mnie jak narazie udało się oprogramować przycisk, który importuje dane
pochodzące z pliku *.txt do bazy danych Access. Czyli niby jestem
blisko.
Niestety dane wejściowe mam w formacie *.csv i dlatego stanałem przed
tym dylematem.

Pytania dot. tego co jest powyżej:
1. Czy można zaimportować dane z pliku *.cvs do tabeli w bazie Access?
Jezeli tak to czy mogłbym poprosić o podpowiedź w jaki spsoób
oprogramowac przycisk na formularzu, który zaimportuje dane w formacie
*.cvs.

2. Jeżeli nie istnieje możliwość z pkt 1 to w jaki sposób wygenerować
z pliku o formacie *.csv plik formatu *.txt, który będzie wyglądał
następująco:

A/0129;69050814494;MICHEL;KRZYSZTOF;M;57550;STRONIE ŚLĄSKIE;

gdzie średniki oddzielają poszczególne kolumny pochodzące z pliku csv.
To jest przykładowa jedna linia, linii oczywiście będzie więcej.

3. Jak wywołać okno do wczytania pliku. Jak narazie wczytanie danych
wejściowych odbywa się w sposób poniższy, czyli po wskazaniu ściezki
dostępu.

objConnection.Open _
    "Provider = Microsoft.Jet.OLEDB.4.0; " & _
        "Data Source = C:XXXxxx.mdb"

objRecordSet.Open "SELECT * FROM tabela1", _
    objConnection, adOpenStatic, adLockOptimistic

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:folder_xxxplik_xxx.txt")


Czołem,

Ad1. Zdaje się że odpowiedź na twoje pytania znajdują sie w archiwum
grupy (sprawdź hasło "import CSV").
Ad2. Możliwość istnieje.
Ad3. Możesz spróbować Własności "FileDialog" z biblioteki Microsoft
Office 11.0 Object Library (MSO.DLL). Dobra alternetywa to archiwum
grupy: "Otwórz plik"

Pozdrawiam,
PK

Przeczytaj wszystkie posty z tego wątku



Temat: Strony Dostępu Do Danych

"Krzysztof Ciuba" <kci@calia.daewoo.lublin.plwrote in message



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...

--
pozdrawiam
ciubson


Witaj

Wiem, ale tu chodzi o to aby cała strona, plik *.mdb i grupa robacza była na
serwerze (np. http://www.aseta.pl/system.mdw)
Z dysku czy z intanetu ściąga i jest OK ale przez protokół http nie.

Bawiłem się też ustawieniem właściwości "UseRemoteProvider" strony dostępu i
nic na wszelkie sposoby.

Włodek
as@aseta.pl

Przeczytaj wszystkie posty z tego wątku



Temat: ODT2000 poprawiony, link?


"Stanley P" <stan@pertus.com.plwrote in message

| Witam
|
| I tym razem ja pytam. Trochę temu (oj chyba rok, jak nie prawie dwa) był
| tu podawany link do poprawionej wersji ODT2k - chodziło o to (o ile
| pamiętam), aby nie dołączał do setupu IE. Czy ktoś z szanownych
| grupowiczów może przypomnieć namiary? Obiecuję wrzucić na witrynkę...
| ;-)

Alternate Version of the Access Run Time
http://msdn.microsoft.com/code/sample.asp?url=/msdn-files/027/001/434...

lub od razu
http://download.microsoft.com/download/office2000dev/art2kmin/1/WIN98...

Warto rzucić okiem na cały dział MSDN downloads:
http://msdn.microsoft.com/downloads/default.asp

np.

Office 2000 Developer Tools Service Release 1 Patch
http://download.microsoft.com/download/office2000dev/patch/sr1/win98/...

Office 2000 Developer Tools Service Patch 2
http://msdn.microsoft.com/msdn-files/027/001/581/MODUpdateSP2.exe

Przy okazji parę innych linków:

Access Update
http://search.officeupdate.microsoft.com/downloadCatalog/default.asp?...

Updated Version of Microsoft Jet 4.0
http://support.microsoft.com/support/kb/articles/Q239/1/14.asp

Updated Version of Microsoft Jet 3.5
http://support.microsoft.com/support/kb/articles/Q172/7/33.ASP

| P.S. Próbowałem przeszukiwać sieć, archiwa grupy, lecz speed o tej
| porze...
| Przy okazji: czy ktoś zna namiary dobrych (nalepiej w kraju)
| przeszukiwarek archiwów newsów, chociazby w hierarchii pl.? Także
| obiecuję dorzucić do linkowni na swojej stronie... DejaNews teraz
| przekierowuje na jakieś Goggle, zresztą prędkość o tej porze jak 2
| zdania wczesniej.

Deja zostało chyba przejęte przez Google.
Poza tym jest kiepskie, bo kompletnie nie obsługuje polskich znaków.

Może trzeba stworzyć werszcie własne archiwum?
Najlepiej w ramach większego serwisu accessowego. :-)

Przeczytaj wszystkie posty z tego wątku



Temat: Problem podczas IMPORTU
Juzer tomeq <tomeq1@o2.plnapisał

| Oto kod:

(...)
| 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

(...)
| 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

Jeśli robisz to z poziomu access'a (a wszystko na to wskazuje), to
samodzielnie parsując linie pliku tekstowego wynajdujesz koło...

Od zawsze Jet potrafi obrabiać pliki tekstowe (i inne), za pośrednictwem
sterowników ISAM.

Najprościej jest z plikami csv właśnie, bo dla nich nawet nie trzeba
tworzyć specyfikacji importu/eksportu.
Wystarczy więc taka prosta kwerenda:

Insert Into Kredytobiorcy ({pola})
Select {pola}
from
[Text;FMT=Delimited;HDR=YES;IMEX=2;DATABASE=C:ścieżka].NazwaPliku#txt

W przypadku innych plików tekstowych (nie średnik i bez cudzysłowów
specyfikujących pola tekstowe) należy najpierw stworzyć specyfikację
importu (np. MojaSpec1) i użyć ją później w ciągu połączenia:

select * From
[Text;DSN=MojaSpec1;FMT=Delimited;HDR=NO;IMEX=2;CharacterSet=1250;DATABASE=F:Access2k].Plik#txt

Jak widać z powyższego, można nawet zdefiniować z jakiej strony kodowej
dane mają być zaimportowane (1250).

Jeśli ktoś nie chce samodzielnie tworzyć specyfikacji importu/eksportu,
może programowo tworzyć i wykorzystać plik schema.ini
(archiwum/google)

Przeczytaj wszystkie posty z tego wątku



Temat: Plik mdb do exela


studnia wrote:
Mam podobne pytanko, z ymże nieco bardziej skomplikowane..
Otóż mam formularz na którym chcę umieścić przycisk eksportuj do
excela i eksport ten ma polegać na tym, że do z góry określonego
pliku excelowskiego mają się wrzucać dane z określonych kwerend
(ale nie z formularzy).


Akurat trochę odwrotnie bo z poziomu VBA excela ściąganie danych z SQL
do XLS, ale jak jesteś inteligenty to zajarzysz.
Excela można spokojnie otworzyć jak bazę danych.
Popatrz na connection string do pliku excelowego, a query napiszesz już
sobie sam.
Dwa triki.
1 . Nazwa arkusza excelowskiego w SQL ma $ na końcu, czyli
insert into Arkusz1$

2. pierwszy wiersz w excelu musi miec nazwy kolumn

Public Sub Main()

     On Error GoTo ErrHandler
     Application.Calculation = xlCalculationManual
     Application.ScreenUpdating = False

     Dim XLSConnStr As String
     XLSConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=
??????;Extended Properties=Excel 8.0;"
     '
     Dim SQLConnStr As String
     SQLConnStr = "Driver={SQL
Server};Server=?????;Database=?????;Trusted_Connection=yes;"

     Dim SQLConn As ADODB.Connection
     Dim XLSConn As ADODB.Connection

     Set SQLConn = New ADODB.Connection
     SQLConn.Open SQLConnStr

     Set XLSConn = New ADODB.Connection
     XLSConn.Open XLSConnStr

     Dim rst As New ADODB.Recordset

     rst.Open "Select * from Project", SQLConn

     While Not rst.EOF

     XLSConn.Execute "insert into [Data$] (ProjectID, ProjectName)
values ( aaa, bbb)"
     '

     rst.MoveNext
     Wend

     SQLConn.Close
     XLSConn.Close
     Application.Calculation = xlCalculationAutomatic
     Application.ScreenUpdating = True
     Exit Sub
ErrHandler:
     MsgBox Err.Description
     Application.Calculation = xlCalculationAutomatic
     Application.ScreenUpdating = True
End Sub

Przeczytaj wszystkie posty z tego wątku



Temat: Zabezpieczenia, czy naprawdę jest aż tak źle??


A przy okazji, pozostawiłem w poprzedniej odpowiedzi Twoje p.3 i 4 a nie
ustosunkowałem się. Zatem w miarę krótko:

ad.3 Niestety w accessowych zabezpieczeniach na poziomie użytkownika nie
mozna ustanowić (a raczej odebrać) "prawa do odkrywania obiektów
ukrytych", po prostu takiego rodzaju uprawnienia nie ma.  Przynajmniej w
Acc'97 - w wyższych (2k, XP) o ile mi wiadomo model i zakres dostepnych
uprawnień istotnie sie nie zmienił. Ale moze sie mylę...


W sumie faktycznie przegapiłem pewną rzecz (wstyd).

W mojej bazie usunąłem wszystkie uprawnienia Administratora a pozostawiłem
uprawnienia pozostałym użytkownikom. Jest OK.

 ad.4  Skoro usiłujesz zaimplementować jakiś własny system zabezpieczeń,


bez stosowania chocby w stopniu elementarnym zabezpieczeń "firmowych"
wbudowanych w Accessa, to nie dziw sie, że kazdy nieco kumaty moze wejsc
i modyfikować projekt tabeli...


Właśnie tu mam problem. Bo jak już wspomniałem mam napisany program,
który jest wykorzystywany do obsługi bazy tam gdzie nie ma Accessa. Program
napisałem w niezbyt znanym j. programowania ADA95. Dla tego języka nie
ma ŻADNEJ literatury w Polsce, która traktuje o dostępie do danych w bazach.
Wygrzebałem w bibliotekach sposób jak podłączyć się do bazy Accessa, ale
w momencie kiedy zabezpieczę bazę jak wyżej nie mam dostępu do danych i
nie mogę się doszukać jak to zrobić.
Dostęp uzyzskuję tak:
Open (DB_Control.Database,
         "Provider=Microsoft.Jet.OLEDB.4.0; "&
          "Data Source=c:aza.mdb");
znalazłem w bibliotece, że w instrukcji Open mogą być jeszcze dwa parametry
tzn: User_Id oraz Password, ale za nic to nie chce działać.

Może coś doradzisz??

MAriusz

Przeczytaj wszystkie posty z tego wątku



Temat: Czy jest mozliwosc usprawnic ADP.
Private Sub Form_Open(Cancel As Integer)
   Dim cn As ADODB.Connection
   Dim rs As ADODB.Recordset

   'Create a new ADO Connection object
   Set cn = New ADODB.Connection

   With cn
      .Provider = "Microsoft.Access.OLEDB.10.0"
      .Properties("Data Provider").Value = "Microsoft.Jet.OLEDB.4.0"
      .Properties("Data Source").Value = _
          "D:AsFabrykaAdp est.mdb"
      .Open
   End With

   'Create an instance of the ADO Recordset class, and
   'set its properties
   Set rs = New ADODB.Recordset
   With rs
      Set .ActiveConnection = cn
      .Source = "SELECT * FROM table1"
      .LockType = adLockOptimistic
      .CursorType = adOpenKeyset
      .Open
   End With

   'Set the form's Recordset property to the ADO recordset
   Set Me.Recordset = rs
   Set rs = Nothing
   Set cn = Nothing

   Set Me.Combo.RowSource = rs                    '#blad cutuje: inwalid use
of property
   Set rs = Nothing
   Set cn = Nothing

End Sub

-----------------------------------------------------
Dziala jezeli chodzi o "zasilenie formularza, ale przy probie popiecia do
wlasciwosci zrodlo wierszy wychodzi blad"
VVlodek

Przeczytaj wszystkie posty z tego wątku



Temat: Microsoft Jet
Co należy zrobić kiedy podczas otwarcia bazy danych Access pojawia się
komunikat:
Aparat bazy danych Microsoft Jet zatrzymał proces ponieważ inny użytkownik
próbuje zmienić te same dane
Przeczytaj wszystkie posty z tego wątku



Temat: RecordCount


Użytkownik  wrote:
| To 'baza.update' jest tu niepotrzebne bo zapisuje edycję recordseta,
| a nie
Dodałem to na wszelki wypadek
Oto kod:
Option Compare Database
Public baza As New ADODB.Recordset
Public con As New ADODB.Connection
Public sciezka As String

Private Sub Form_Close()
 baza.Close
End Sub

Private Sub Form_Current()

 Me![RekordB] = Me.CurrentRecord

End Sub
Private Sub Dodaj_Click()
On Error GoTo Err_Dodaj_Click

    DoCmd.GoToRecord , , acNewRec

Exit_Dodaj_Click:
    Exit Sub

Err_Dodaj_Click:
    MsgBox Err.Description
    Resume Exit_Dodaj_Click

End Sub


' wyglada na to, ze baza biezaca i test_wb.mdb to to samo zrodlo
' tak wnioskuje na podstawie sposobu zapisu danych
' zmienilbym linie baza.open ...

 Private Sub Form_Open(Cancel As Integer)
  Rem sciezka = "Data Source = c:pracaaza est_wb.mdb;"

  Rem con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & sciezka
  baza.Index = "ID1"
  baza.Open "tblKontrahent",CurrentProject.Connection, adOpenKeyset, _
             adLockOptimistic, adCmdTable
  baza.MoveLast
  Me![RekordW] = baza.RecordCount
  baza.MoveFirst
 End Sub


Private Sub Zapisz_Click()
On Error GoTo Err_Zapisz_Click

    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, ,
acMenuVer70    


' tu tez zmiana
    baza.Requery
    baza.MoveLast
    Me![RekordW] = baza.RecordCount
    baza.MoveFirst


Exit_Zapisz_Click:
    Exit Sub

Err_Zapisz_Click:
    MsgBox Err.Description
    Resume Exit_Zapisz_Click

End Sub
Private Sub Cofnij_Click()
On Error GoTo Err_Cofnij_Click

    DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70

Exit_Cofnij_Click:
    Exit Sub

Err_Cofnij_Click:
    MsgBox Err.Description
    Resume Exit_Cofnij_Click

End Sub

Co śmieszniejsze jak dwa razy kliknę na zapisz rekord to recordcount
zaktualizuje się poprawnie.


Być może wynika to ze zwłoki odświeżania danych (???)

A tak w ogóle to moim zdaniem w Twoim kodzie jest dużo przekombinowane. Przynajmniej w tym fragmencie recordset sluży tylko do odpytania go o RecordCount. Być może robisz to w celach szkoleniowych (?).
Może zainteresuje Cię wątek "'Asynchroniczne' wyliczane pola z 'ilu'", z 7.paź by R. Krawiec

---
KCiuba

Przeczytaj wszystkie posty z tego wątku



Temat: Konwersja/imoprt danych z SQL Server do pliku MS Access *.mdb
Czy probowales polaczyc wszystkie tabele z SQL bazy danych (poprzez
ODBC) do pustej bazy Accessa?
Mozna to zrobic manualnie uzywajac Accessa albo programowo poprzez
ADOX:

Function CreateLinkedDB()

    Dim oCatSource As New ADOX.Catalog
    Dim oTblSource As New ADOX.Table
    Dim oCatNew As New ADOX.Catalog
    Dim oTblNew As New ADOX.Table

    'Create new access database
    oCatNew.Create _
        "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=d:dbaseMojaBaza.mdb"

    'Open the catalog (nowa Access db).
    oCatNew.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=d:dbaseMojaBaza.mdb"

    ' Open the catalog (istniejaca SQL db).
    oCatSource.ActiveConnection = _
        "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security
Info=False;Initial Catalog=pubs;Data Source=(local)"

    'Cycle through all tables and link to sql server.
    For Each oTblSource In oCatSource.Tables
    ' Check to make sure each table is a linked table.
        If oTblSource.Type = "TABLE" Then
            Set oTblNew.ParentCatalog = oCatNew
            With oTblNew
                .Name = oTblSource.Name
                .Properties("Jet OLEDB:Create Link") = True
                .Properties("Jet OLEDB:Link Provider String") = _
                    "ODBC;" & _
                    "Driver={SQL Server};" & _
                    "Server=(local);" & _
                    "Database=Pubs;" & _
                    "Trusted_Connection=Yes;" & _
                    "Uid=sa;" & _
                    "Pwd=;"

                .Properties("Jet OLEDB:Remote Table Name") =
oTblSource.Name
                .Properties("Jet OLEDB:Table Hidden In Access") = False
                .Properties("Jet OLEDB:Cache Link Name/Password") =
False
                .Properties("Jet OLEDB:Exclusive Link") = False
            End With
            oCatNew.Tables.Append oTblNew
            Set oTblNew = Nothing

        End If
    Next
    oCatNew.Tables.Refresh

    Set oTblSource = Nothing
    Set oTblNew = Nothing

    Set oCatNew.ActiveConnection = Nothing
    Set oCatNew = Nothing

    Set oCatSource.ActiveConnection = Nothing
    Set oCatSource = Nothing

End Function

Przeczytaj wszystkie posty z tego wątku



Temat: Jak podac statycznie wartosc dla kwerendy parametrycznej
Użytkownik "Krzysztof Naworyta" <k.nawor@datacomp.com.pl napisał w
wiadomo ci [...]

Niemniej fakt, kwerendy parametryczne (bez odwołań do formularzy)
sensownie
da sie wykorzystać jedynie z poziomu kodu.
Widać konsekwencja takiej a nie innej drogi rozwoju (?)
--
KN


Nasunelo mi sie cos jeszcze innego.
Przeciez kwerenda parametryczna to chyba nie jest wymysl M$,
ale standard SQL ANSI-89.
Czyli problem w standardzie ?

Ale ...
poczytalem w helpie A97 sekcje
"Porównanie języka SQL aparatu bazy danych Microsoft Jet z ANSI SQL".

jest taki akapit
"Dodatkowe cechy języka Microsoft Jet SQL.
Microsoft Jet SQL obejmuje następujące cechy dodatkowe:"

a tam element
"- Deklarację PARAMETERS pozwalającą na definiowanie kwerend
parametrycznych."

I dalej cytuje M$ (Help Access 97)
"Kwerenda parametryczna.
Kwerenda wymagajaca przed uruchomieniem podania jednego lub wiecej
kryteriow, np. Warszawa dla parametru Miasto.
SCISLEJ MOWIAC, KWERENDA PARAMETRYCZNA NIE JEST
ODDZIELNYM TYPEM KWERENDY; ZWIEKSZA ONA RACZEJ
ELASYCZNOSC KWEREND."

Pytanie:
Skoro M$ wprowadzil pojecie PARAMETROW i Kwerende parametryczna
jako "Zwiekszenie elastycznosci" standardu SQL ANSI-89, to dlaczego nie
zaimplementowano drobnego rozszerzenia w postaci podania parametrow
nie jako "wpis z palca", ale rowniez jako syntax podany przeze mnie w poscie
wywolujacym watek:
"NazwaKwerendyParametrycznej [WartoscParametru1], ..., [WartoscParametruN]"
?

Poczytalem opis zagadnienia w ksiazce "Access 2002 Ksiega Experta",
aby zobaczyc czy cos sie zmienilo.
Cuytuje,  str. 94:
"Uzycie kwerend parametrycznych
[...]
Przed uruchomieniem kwerendy uzytkownik musi podac wymagane dane.
[...]"

Cuytuje,  str. 95:
"W oknie dialogowym sluzacym do definiowania parametrow kwerendy typ danych
parametru mozna ustawic, korzystajac z listy rozwijanej, dostepnej w
kolumnie
TYP DANYCH.

Parametrem moze byc zdanie  o maksymalnej dlugosci 255 znakow. Umozliwia
to zadawanie uzytkownikom pytan o kryteria w bardziej zrozumialy lub
poprostu
bardziej grzeczny sposob. Zmien parametr i sposob jego przedstawienia
na 'Prosze wprowadzic klienta'.

Uruchom kwerende i w odpowiedzi na pytanie o parametr wpisz 'Quick'.
W zestawie rezultatow znajda sie wszystkie rekordy , w ktorych IDklienta
jest 'Quick'."

------------------------
A wiec Jet przyjmuje parametry z malego formularza podobnego do formy
MsgBox, ale juz nie przyjmuje podania ich wprost w dowolnie innym miejscu.

Jak dla mnie to najdelikatniej mowiac celowe i zamierzone "niedopatrzenie",

Pozdrawiam,
Krzysiek

Przeczytaj wszystkie posty z tego wątku
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • erfly06132.opx.pl



  • Strona 3 z 4 • Zostało wyszukane 216 wypowiedzi • 1, 2, 3, 4

    © 2009 Najlepszy miesiąc kawalerski w Polsce !!! - Ceske - Sjezdovky .cz. Design downloaded from free website templates