Access adatbázis elérések
2007-05-24T12:33:24+02:00
2007-05-26T16:31:21+02:00
2022-07-26T09:26:13+02:00
  • Visszatérnék a "Saját tábla" problémára. Ha a connetion stringet változtatod, akkor az ADP-ből más providert is elérsz, a Jeten keresztül MDB-t. Az alábbi kóddal az aktuális kapcsolatból, és az mdb-ből is kiolvashatsz adatot. Innen egy ciklussal a kombi panelt, esetleg eleve szűrt adatokkal, fel lehet tölteni. Gondolom, ha adsz egy sorforrást, akkor is ciklussal tölt, csak más szinten.


    Dim cnn As New ADODB.Connection Dim cnn2 As New ADODB.Connection Dim rst As New ADODB.Recordset Dim rst2 As New ADODB.Recordset rst.Open "SELECT * FROM TÁBLANEVE1", CurrentProject.Connection rst.MoveFirst MsgBox rst(0) cnn2.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=.\ADATBÁZISNEVE.mdb;" rst2.Open "SELECT * FROM TÁBLANEVE2", cnn2 rst2.MoveFirst MsgBox rst2(1)

    ShiMe !

    Egyébként ez arra is jó, hogy másik sqlszerver adatbázist érjen el az ember. Esetleges bizalmas adatok jobban elrejthetők.
    Mutasd a teljes hozzászólást!
  • Hiába:
    Isten szeme mindent lát, a rendszergazdáé kicsit tán többet is .
    Mutasd a teljes hozzászólást!
  • szóval ne a rendszergazdával próbálkozzak, hiába az én gépemen van a szerver feltelepítve

    tényleg ez volt a gáz..... köszi
    Mutasd a teljes hozzászólást!
  • Ha windows authentikációval mész be (és valóban azzal) és nem állítottál semmit akkor tuti, hogy nincs joga, hacsak nem local admin a szerver gépen (vagy domain admin, ami ugye local admin is egyben).
    Mutasd a teljes hozzászólást!
  • stl, bocs.. egy kérdés: hol tudom beállítani, hogy a táblákhoz senkinek ne legyen semmilyen joga....??


    ugyanis:
    Sql szerver Enterprise Manager- tábla jobb egérgomb tulajdonságok, permissions.. .kikeresem a usert majd x-re állítom a select insert update delete dri-t....

    utána fogom bemegyek a user gépén az adpbe ahol a táblák vannak és simán tudok beleirogatni a táblába...
    Mutasd a teljes hozzászólást!
  • az első része megvan. windows authentikáció, és be vannak állítva a legutolsó nézetig ki mit csinálhat.

    így csak a tárolt eljárásokkal tudom az adatokat módosítnai.elvileg


    gond ott jön, ha adp-t használok és belép valaki akinek nincs joga pl törölni, vagy módosítani egy táblát simán belenézhet (persze ha ismeri a shiftes trükköt...)

    hopppááá, most teszteltem, beállítottam egy táblára a szerveren , hogy egy adott felhasználó nem módosíthat.... erre bemegyek a felhasználó gépéd az adp-be és simán enged módosítani.... ezt most nem értem
    Mutasd a teljes hozzászólást!
  • Ha bizalmas infókat kell tárolnod akkor egy kicsit más megközelítés kell:

    1.
    (Feltételezve, hogy active directory van)
    Nem fér hozzá mindenki a szerverhez. Létrehozol windowsos csoportokat a különböző munkakörökhöz, ebbe veszed fel az AD usereket. A windowsos csoportoknak adsz jogot a különböző táblákhoz. A kliens oldalról windows authentikációval csatlakozol
    (Amennyiben csak munkacsoport van)
    Senki nem fér hozzá a szerverhez. A szerveren felveszel SQL loginokat, ezeket rögzíted az adatbázisban mint usereket. a role-oknak adsz jogot a táblákhoz.
    Ennek nagy hátránya, hogy a windows userekkel ellentétben ezeket külön karaban kell tartani.

    A kliens oldalon a menüket engedélyezheted vagy tilthatod a windows vagy role member tagság alapján.

    2. (A következő biztonsági szint)
    A táblákhoz senkinek semmilyen úton módon nincs joga.
    Ellenben csinálsz egy csomó tárolt eljárást. Csak a tárolt eljárásokon keresztül kezeled a táblákat. Ez rengeteg melóval jár, de megvan az az előnye, hogy akár táblán belül is szabályozhatod az adatok elérését (pl. automatikusan szűröd a HR adatokat részlegekre, így nem látja egyik manager a többi részleg fizetéseit és át sem tudja írni)
    Mutasd a teljes hozzászólást!
  • VB ablakban kell nyomni egy Debug-ot. Ha ez nem jelez hibát, akkor mehet az ade (vagy mde).

    Ne felejtsd el, hogy csak az eredti fájlodban tudod szerkeszteni a kódot. Nehogy letöröld.
    Mutasd a teljes hozzászólást!
  • Hmm! Hát igen, viasz. A védelem terén inkább a kódlopás ellen jó. Vagy 5 éve nem használtam. Frissiteni kell az ismereteimet, hátha még valamire jó. Nagy sebesség növekedést nem tapasztaltam, persze ez program függő.
    Mutasd a teljes hozzászólást!
  • na kész az első ADE-... ott vannak a táblák

    komolyan ez olyan #&@˘°....

    igen most ezt próbálom.... hátha a szerveren van valami....
    az a gond, hogy csak 3 napja tanulgatom és lapozgatom Robert Vieira könyvét
    be lehet állítani, hogy ki milyen táblát selectáljon, töröljön, frissítsen stb. de azt nem találtam, hol tudom beállítani hogy ne láthasson....


    volt egy ilyen gondolatom, hogy nyitok egy sima mdb-t ahol csak űrlapok vannak. és ADO-val oldom meg a kapcsolatot- így nem látszanak a táblák és a lekérdezések......
    ott egy űrlap rajta egy szöveg1 mező, gombnyomásra csatlakozik ado-val az adatbázishoz, megmondom melyik tárolt eljárást futtassa le, a tárolt eljárás paramétere pl a szöveg1 mező és kész.... csak ez nem tudom mennyire lassabb.. Sipeki írta, hogy
    ő az adp-t javasolja mert az hatékonyabb, mert ott csak a lekérdezés eredménye kerül át, nem pedig minden adat a szerverről.....
    Mutasd a teljes hozzászólást!
  • na elkezdtem talán jó lesz :

    - nem fogom látni a táblákat és tárolt eljárásokat....

    - egy dolog van!!, ha vb-ben vannak nem értelmes hivatkozások pl. nem létenő objektumokra, űrlapokra, vagy űrlapon belül használunk valamilyen hivatkozást nem létező dologra (pl. fejlesztés közben vagyunk) akkor nem hajlandó az ade átalakítást végrehajtani. Tehát teljesen kész programmal kell rendnelkezni


    a súgóból:
    Az ADE fájlok – áttekintés (ADP)

    ADE fájl: Microsoft Access projektfájl (.adp), melyben az összes modul le van fordítva, és minden szerkeszthető forráskód el van távolítva belőle.

    Ha a Microsoft Access projektfájl (.adp) Visual Basic for Applications (VBA) kódot tartalmaz, az Access projekt .ade fájlként való mentése lefordítja az összes modult, eltávolítja az összes szerkeszthető forráskódot, és tömöríti az Access projektfájlt. A VBA kód továbbra is működni fog, de nem lehet megtekinteni vagy módosítani.

    Az Access projektfájl továbbra is rendeltetésszerűen fog működni, azaz módosítani lehet benne az adatokat, és futtatni lehet a jelentéseket. Előnyt jelent, hogy a kód eltávolításának köszönhetően az Access projekt mérete csökken, így a memória kihasználása optimális lesz, és javul a teljesítmény.



    remélem ez a spanyol viasz
    Mutasd a teljes hozzászólást!
  • szerintem az ADE az olyan mint az MDE.

    Vagyis csak az űrlapok kódját fordítja bele a progiba. Ettől még a táblákat ugyanúgy látod.
    Valahogy el kéne érni, hogy csak az űrlapról lehessen adatokat változtatni.
    Nézz körül az MS-SQL Server témakörben...
    Mutasd a teljes hozzászólást!
  • Vágj bele! "A gondolkodás a tett halála!"

    Az ADE dolognak én is utána nézek.
    Mutasd a teljes hozzászólást!
  • tényleg a belépések lerögzítése egy táblába, akkor nyomon követhető hogy mi történt....


    most elkezdtem végignyálazni a súgót...
    van egy ilyen lehetőség, hogy adp-ből csinál ade-t. (melynél eltűnnek, nem látszanak a dolgok). A 2000-es accesst át kell konvertálni 2003-asra és az adatbázis-segédeszközöknél az MDE/ADE átalakítást kell választani..... elvileg.... nekem nem sikerül kidob hibával...

    adp-ben nem tudom elrejteni a táblát.

    tehát marad:
    1.verzio:
    - indítás/adatbázis ablak (kiszedem a pipát)
    - shift letiltás
    2.verzió:
    - adp-ből ade-t csinálok.... de ez eddig nem jött össze
    Mutasd a teljes hozzászólást!
  • Lehet, hogy nem vagyok szakszerű, de gondolom, ez egy amatőrnek elnézhető.
    Kapható az office-hoz fejlesztői kiegészítés. (a 2007- hez még nem). Ha jogtisztán a birtokodban van, akkor a vele adott Access verziót, mely csak futtatásra alkalmas, szerkesztésre nem, tetszés szerinti számban, a programjaidhoz használhatod.

    Kicsit filozófikus, de a védelmi ráforditások és a védelmi szint optimális szintjét kell megtalálni. Minden feltörhető, csak szakértelem, pénz és idő kérdése.

    Legtöbben, ha elrejted a táblát azt sem tudják visszaállítani.

    A bizalmas adatokra lehet valami külön védelmet kreálni, de a nagyon bizalmast nem tenném számítógépre.

    Az előbb elfelejtettem a védelmi intézkedéseimből azt, hogy a beléptetési része a programomnak rögziti a felhasználó be, és kilépési idejét, és fontosabb adatok rögzítésénél, változtatásánál rögzitem a rendszerdátumot és a felhasználó nevét.

    Szóval sok lehetőséget letiltok, sok disznóság ellen ellenőrzéssel védekezem. Eddig talán eredményesen.
    Mutasd a teljes hozzászólást!
  • Szia Sipeki!
    1.ponthoz:
    Attól félek, hogy pl valami bizalmas infókat kell tárolni valamelyik táblában. mégha a fent leírt (eszközök/indítás) dolgot beállítom és letiltom a shiftet. akkor is jöhet bárki aki ismeri hogyan lehet a shift letiltást visszaállítani kívülről, majd bele tud kukkantani simán a táblákba...


    runtime..? ezt még nem hallottam. ez mit tud?
    Mutasd a teljes hozzászólást!
  • Nincs mit.
    Mutasd a teljes hozzászólást!
  • A right jó ötlet volt, köszi
    Mutasd a teljes hozzászólást!
  • Nem elég, hogy rossz helyen kérdezek, még rosszul is
    Csatolt tábla természetesen. És alkalmazás sincs, egy SQL lekérdezés havi 1alkalommal...
    Mutasd a teljes hozzászólást!
  • Ez nem igazán társalgó, inkább tudástár téma.

    Mivel importált, és nem csatlakoztatott, töröld a 9 jegyű első négy karakterét a right függvény és a frissítő lekérdezés alkalmazásával , vagy hozzál létre egy új 5 karakteres mezőt. Az alkalmazásod dönti el a jó utat.
    Mutasd a teljes hozzászólást!
  • Sziasztok!

    Ne haragudjatok, hogy belepofátlankodom a topicba, de ezért az egy kérdésért nem akartam újat nyitni, itt meg vannak access guruk
    Szóval van egy lekérdezés ami mdb-be importált dbase fileokat használ. Össze van kötve inner joinnal kettő (illetve szeretném csak) a kulcs mező egy 9jegyű az egyikben, 5 jegyű a másikban. Az első 4 karakter mindig ismétlődik, ezért nincs a másodikban letárolva. Valahogy az inner join-nak meg kéne mondani, hogy a 9 jegyből csak az utolsó 5 az értékes, így össze tudnám kötni a táblákat. Sajna VB-hez hót'homály vagyok, a clipperből ismert substr(string,5,5) itt nem működik
    Szóval valami substr féle kéne...
    Mutasd a teljes hozzászólást!
  • A prog.hu-n van a SHIFT letiltására. és a SHIFT letiltás megszüntetésére is kód.
    Én nem tiltom le a SHIFT-et:
    1. mert megbízom a munkatársaim tudatlanságában.
    2. a szerveren sok biztonsági intézkedést meg lehet tenni.
    3. ahol nem szükséges teljes Access, ott runtime megy. Ez nem csak biztonságos, hanem gazdaságos is, már 5-6 gép felett.
    4. ahol nagyon fontos ott naponta, automatikusan, a felhasználói program menti a táblákat. A mentés MDB-be történik és az mdb neve a naptári nap nevével kezdődik, tehát mindig van minden gépen egy hetes mentésem pluszban.Fontos adatok sértetlenségét, a különböző mentések köti változatlansággal a program indulásánál ellenőrzöm. Pl. a rendszer letiltja az értkesítési lehetőséget, ha a vevő X napnál hosszab ideje késik a számla kiegyenlítésével. Volt aki a táblában átírta a lejáratot, eladott, és másnap vissza írta a lejárat dátumát. Lebukott!!
    5. egyébként saját bejelentkezést használok, jogosultság 0-100-ig terjedő meghatározásával, és így akár egy mező, adott körülmények közti használatát személyre szabottan tudom szabályozni.
    Mutasd a teljes hozzászólást!
  • egyenesen a Access-VB súgóból:
    AllowBypassKey Property
    You can use the AllowBypassKey property to specify whether or not the SHIFT key is enabled for bypassing the startup properties and the AutoExec macro. For example, you can set the AllowBypassKey property to False to prevent a user from bypassing the startup properties and the AutoExec macro.

    Setting
    The AllowBypassKey property uses the following settings.

    Setting Description
    True Enable the SHIFT key to allow the user to bypass the startup properties and the AutoExec macro.
    False Disable the SHIFT key to prevent the user from bypassing the startup properties and the AutoExec macro.


    You can set this property by using a macro or Visual Basic.

    To set the AllowBypassKey property by using a macro or Visual Basic, you must create the property in the following ways:

    In a Microsoft Access database (.mdb), you can add it by using the CreateProperty method and append it to the Properties collection of the Database object.
    In a Microsoft Access project (.adp), you can add it to the AccessObjectProperties collection of the CurrentProject object by using the Add method.
    Remarks
    You should make sure the AllowBypassKey property is set to True when debugging an application.

    This property's setting doesn't take effect until the next time the application database opens.

    Example
    The following example shows a procedure named SetBypassProperty that passes the name of the property to be set, its data type, and its desired setting. The general purpose procedure ChangeProperty attempts to set the AllowBypassKey property and, if the property isn't found, uses the CreateProperty method to append it to the Properties collection. This is necessary because this property doesn't appear in the Properties collection until its been added.


    Sub SetBypassProperty()
    Const DB_Boolean As Long = 1
    ChangeProperty "AllowBypassKey", DB_Boolean, False
    End Sub

    Function ChangeProperty(strPropName As String, varPropType As Variant, varPropValue As Variant) As Integer
    Dim dbs As Object, prp As Variant
    Const conPropNotFoundError = 3270

    Set dbs = CurrentDb
    On Error GoTo Change_Err
    dbs.Properties(strPropName) = varPropValue
    ChangeProperty = True

    Change_Bye:
    Exit Function

    Change_Err:
    If Err = conPropNotFoundError Then ' Property not found.
    Set prp = dbs.CreateProperty(strPropName, _
    varPropType, varPropValue)
    dbs.Properties.Append prp
    Resume Next
    Else
    ' Unknown error.
    ChangeProperty = False
    Resume Change_Bye
    End If
    End Function
    Mutasd a teljes hozzászólást!
  • erre a shiftes megoldásra gondoltam én is. már megtaláltam a prog.hu-n. furcsa egy megoldás de hatásos.

    De ez, hogy látom a táblákat.... olyan szinten idegesit
    Sipeki, nincs véletlenül erre egy megoldásod, ahogy végigolvastam hozzászólásaidat már nem egy adp-t hoztál létre. a táblák és tárolt eljárások jogosultságait beállítom userekre, ő selectálhat, ő törölhet... erre meg shifttel megnyitom az adp-t és bárki belekukkanthat a táblákba....

    Halinorbi a kombilistáknál beállítod a sorforrásnál valamelyik lekérdezésed, vagy recordset-ből/ado/ töltöd fel?
    Mutasd a teljes hozzászólást!
  • Ez a saját tábla dolog engem is izgat, de nem tudtam kielégitő megoldást találni.

    Van félmegoldásom, más típusu problémára, és nem 100000 sorra.

    Van, hogy egy táblában a felhasználó nevével, és/vagy a computer nevével elkülöníthetővé teszem az adatokat, biztosítva, hogy csak egy helyről lehessen használni a jelzett rekordokat. Megteszem azt is, hogy adott célra számítógépnévvel megkülönböztetett tábla van ( ez a rosszabb ).

    Mindenesetre keresem a megoldást, és ha van valami, szólok.
    Mutasd a teljes hozzászólást!
  • a shift-et le lehet tiltani. Keress rá a progon. (a tiltást egy másik mdb-ből, vagy VB-Scriptből föl lehet oldani, ha véletlenül nem tudnál visszajutni a VB-be.

    shift tiltás/engedélyezés:
    Keresés - Prog.Hu



    A táblák láthatósága engem is idegesít.

    De van egy durvább dolog: (Sipeki! Ezt én kérdezném tőled)
    úgy szoktam használni az access-t, hogy a userek gépén is van egy MDB fájl, amibe az induláskor feltöltök egy csomó adatot. Példul a százezer soros terméktábla cikkszámait... azért, mert a kombilista megjelenése így sokkal gyorsabb.

    Jól látom, hogy ADP project esetében nem tudok becsatolni egy táblát a saját wincseszterről??? Iletve becsatolhatom, de ez az sql-szerveren hoz létre egy objektumot, és félő, hogy ezt megnyitva nem mindenki a saját gépén lévő mdb-t látja, hanem egy bizonyos mdb-t. Ez régen MDB-ben úgy volt, hogy létrehoztam egy csatolt táblát, aminek az elérési útja: "C:\adatTemp\adatok.mdb" volt. Ez ott azt jelentette, hogy minden user a saját gépén lévő adatbázist látja. NA, valami ilyesmit kéne megvaósítani ADP-ben. Vagy ha már a user gépén van ADP fájl, akkor abba nem lehet helyi táblákat tenni? (.. gondolom nem...)

    Most pár hétig nem tudom kipróbálni hálózatban, azért kérdezem.
    Valamit ki kell találni arra, hogy az adatokat ne küldözgesse fölöslegesen a hálózaton.
    Mutasd a teljes hozzászólást!
  • Bocs pongyolán fogalmaztam. Az inditás beállításai adják a lehetőséget.

    Precizebben:

    Az eszközök – indítás opció választása után egy panel jelenik meg.

    A kitölthető, választható mezők jelentése a következő:

    1. Az alkalmazás címe: A képernyő legfelső részén a címsorban megjelenő feliratot lehet beállítani.

    2. Az alkalmazás ikonja: Az alkalmazás ikonja mezőbe írjuk be a használni kívánt ikont tartalmazó .ico vagy .bmp fájl nevét.

    3. Menüsor: listáról válaszd ki az alapértelmezett menüsort.

    4. Teljes menük használhatók: bejelölve a teljes menük használhatóak.

    5. Alapértelmezett helyi menük használhatók: Jelöld be az Alapértelmezett helyi menük használhatóságához.

    6. Access speciális billentyűk használata: Bejelölése engedélyezi a speciális billentyűk használatát.( F11 = Az Adatbázis ablak lesz a legfelső ablak. (Adatbázis ablak: Access adatbázisok és Access projektek megnyitásakor megjelenő ablak. Új adatbázis-objektumok létrehozására és létező objektumok megnyitására szolgáló parancsikonokat jelenít meg.)

    CTRL+G = Az Immediate ablak megnyitása. CTRL+F11 = Váltás az egyéni és a beépített menüsor között. CTRL+BREAK = Microsoft Access projektekben (Microsoft Access projekt: Olyan Access fájl, amely Microsoft SQL Server adatbázishoz kapcsolódik, és ügyfél/kiszolgáló alkalmazások létrehozására használják. A projektfájlok nem tartalmaznak adatokat, sem adatdefiniálással megadható objektumokat (például táblákat vagy nézeteket).)

    a rekordok beolvasásának megszakítása a kiszolgálóról. ALT+F11 = A Microsoft Visual Basic Editor indítása.)

    7. Űrlap/lap megjelenítése: Kiválasztható a program indulásával együtt induló űrlap vagy lap. Amennyiben a Shift lenyomott állapotában indítod a programot, nem indítja el a kiválasztott rész. Ez a beállítás felülírja az esetleges autoexec makró hasonló előírását.

    8. Adatbázis ablak megjelenítése: Adatbázis ablak megjelenítéséhez jelöld be Adatbázis ablak megjelenítése négyzetet. Vigyázz!! Ha törlöd az Access speciális billentyűk használata és az Adatbázis ablak megjelenítése négyzet jelölését, a Fájl menüt helyettesíted saját egyéni menüvel. Így az Adatbázis ablak a legutóbb használt fájlok listájának használatával sem jeleníthető meg.

    9. Állapotsor megjelenítése: Az állapotsor megjelenéséhez jelöld be.

    10. Helyi menü. Válaszd ki azt a helyi menüt, amelyik az űrlapok, jelentések alapértelmezett menüje lesz.

    11. Beépített eszköztárak elérhetők A beépített eszköztárak felhasználó általi módosításának engedélyezéséhez jelöljük be a Beépített eszköztárak elérhetők és az Eszköztár/Menü változtatható jelölőnégyzetet.

    12. Eszköztár/menü változtatható Ha meg szeretnénk akadályozni, hogy a felhasználó átalakíthassa az összes beépített eszköztárat, jelöljük be a Beépített eszköztárak elérhetők négyzetet, de töröljük az Eszköztár/Menü változtatható jelölőnégyzetet.
    Mutasd a teljes hozzászólást!
  • elkezdtem nézni az adp(beállításokat) ahogy írtad.

    Ne haragudj ezért a kis kitérőért,de ezeket nem értem:
    Szerkesztés/keresés:
    értéklista megjelnítésénél jó a rekordok a a helyi pillanatfelvételben v. a rekordok a kiszolgálón.?

    Űrlap/jelentések:
    Kijelölési mód: részlegesen bezárt v. teljesen bezárt.?

    Speciális:
    DDE kérelmek figyelmen kívül hagyása v. DDE frissítés engedélyezése
    illetve mi az optimális a ole/DDE időtúllépés-re illetve a frissítés gyakoriságára (vagy ezt hagyjam, mert nem kell)?

    Mutasd a teljes hozzászólást!
  • ez érdekel!

    akkor az adp hatékonyabnak tűnik, mert tényleg csak a lekérdezést adja vissza

    .. .de hogy tudom beállítani, hogy ne látszódjanak a táblák és lekérdezések ( http://office.microsoft.com/hu-hu/access/FX100646921038.aspx) Ebben az van, hogy elrejteni nem lehet a táblákat mint mdb-ben és nem is biztonságos..., próbálkoztam az űrlap automatikus indítással, de mint kiderült ezt nem veszik be (kapásból 3 ember ismerte a SHIFT-es trükköt)

    azt is kipróbáltam, hogy a szerveren a táblára beállítottam jogosultságot (mármint elvette a select, delete, stb-t) hátha nem jelenik meg a tábla, de ott van....

    próbáltam-mert végignéztem a fórumot- a shift letiltása trükköt... nem hiszem, hogy csak ez van- bár nagyon jóóóó!

    Az egyik problémám előrevetítve: ha valaki belép adp-be látja a táblákat és láthat olyan adatot amit nem szeretnék....

    érdekel minden trükk
    Mutasd a teljes hozzászólást!
  • Mindeképen ADP!!

    Az MDB-ben mindig minden adat átkerül a szerverről a felhasználó gépére. Az ADP-ben csak a lekérdezések eredményei.

    Mindenkinek külön ADP file.

    Az Access beállítások lehetővé teszik azt, hogy a felhasználó ne lásson semmit. na meg vannak egyéb trükkök is.

    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd