huhh... feljebb is írtam, h nem vok nagy access guru, szal kicsit közérthetőbben a lépéseket ha leírnád, azt megköszönném... (nagyjából értem, h mire gondolsz, de nem tom hogyan is álljak neki)
Gyorskeresés
Legfrissebb anyagok
- Bemutató Spyra: akkus, nagynyomású, automata vízipuska
- Bemutató Route 66 Chicagotól Los Angelesig 2. rész
- Helyszíni riport Alfa Giulia Q-val a Balaton Park Circiut-en
- Bemutató A használt VGA piac kincsei - Július I
- Bemutató Bakancslista: Route 66 Chicagotól Los Angelesig
Általános témák
LOGOUT.hu témák
- [Re:] [D1Rect:] Nagy "hülyétkapokazapróktól" topik
- [Re:] eBay-es kütyük kis pénzért
- [Re:] [gban:] Ingyen kellene, de tegnapra
- [Re:] [Luck Dragon:] Asszociációs játék. :)
- [Re:] [Szevam:] Érzelmi magabiztosság/biztonság - miért megyünk sokan külföldre valójában?
- [Re:] [sziku69:] Fűzzük össze a szavakat :)
- [Re:] [sziku69:] Szólánc.
- [Re:] [bambano:] Bambanő háza tája
- [Re:] Elektromos rásegítésű kerékpárok
- [Re:] [Tüzi:] Geek-hatarozo
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
Hozzászólások
nofreenick
aktív tag
jeges
senior tag
1. lekérdezést csinálsz, ami megmondja, mely sorokból van kettő vagy annál több -> berakod az index mezőit a lekérdezés mezői közé, majd view -> totals. ezután beraksz még egy tetszőleges mezőt a legelejére, total-t beállítod ''count''-ra, és criteria-ba beírod, h ''>1''. ezzel csináltál egy olyan lekérdezést, ami megmondja, h az index mezőkre vonatkoztatva melyek azok, amelyekből kettő vagy több van a táblában (azaz duplikátum).
2. query -> make-table query, és add meg, mi legyen az új tábla neve!
3. le tudod tesztelni a lekérdezést ''normál'' view-val, de az is jó sokáoig fog futni. ha viszont a középen megjelenő ''!'' ikonra klikkelsz, akkor létrehozza a táblát, amiben kizárólag a duplikált rekordok vannak (lehet, előbb menteni köll a lekérdezést, már nem emlékszem) - addig mondjuk menj el kávézni, de inkább ebédelni
4. miután megvan a lekérdezésed, manuálisan ki tudod keresni azokat a sorokat az eredeti táblából, amikből több van, és manuálisan törölheted is.
közben eszembe jutott, mintha azt írtad volna, h a tábla minden mezője része az indexnek. ha ez igaz, ebben a speciális esetben azt is megcsinálhatod, h a ''criteria'' mezőbe nem írsz semmit. ennek az lesz a hatása, h létrehozol egy olyan táblát, amiben minden, az eredeti táblában meglévő rekord benne van, kivéve azokat, amelyek már duplikátumok (azaz mindenből egyetlen rekord marad). mintha neked pont ez kéne
szerk: #200: meg lehet úgy is csinálni, h előre megcsinálod a lekérdezést, és a criteria-ba beírod az űrlapon lévő legördülő-menü nevét (persze teljes hivatkozással, űrlapostul). a legrödülő ''frissítésre'' tulajdonságához létre lehet hozni egy modult, amibe docmd.openquery paranccsal meghívod a megfelelő lekérdezést.
[Szerkesztve]
nofreenick
aktív tag
köszi, meg fogom próbálni, csak annyira ráül a gépre ez a sz.r, h nem tudok mellette dolgozni túlórázni meg nem fogok emiatt
kraftxld
nagyúr
Sziasztok!
Beviteli maszkkal van bajom:
Windows XP, Access 2000 tábla szöveg mezőjébe milyen kell írni, hogy a szöveg első betűje nagy, a többi kisbetű legyen? (>L<????? -t nem fogad el)
| MCSE+M/S, MCITP, VCP6.5-DCV - ''Life can be hard, but Scooter is harder :)'
kraftxld
nagyúr
Windows XP, Access 2000 tábla szöveg mezőjébe milyen beviteli maszkot kell írni, hogy a szöveg első betűje nagy, a többi kisbetű legyen? (>L<????? -t nem fogad el)
| MCSE+M/S, MCITP, VCP6.5-DCV - ''Life can be hard, but Scooter is harder :)'
jeges
senior tag
kipróbáltam, nekem működik (win2k, off2k)
text típusú a mező?
format, validation rule van?
szerk: méér nem fogadja el? mit ír ki?
[Szerkesztve]
kraftxld
nagyúr
Ha nem jól töltöm ki a szöveget, akkor ezt írja: A beadott érték nem felel meg a mezőhöz megadott '?a<LLLLL' beviteli maszknak.
Szöveg mező; magyar Access 2000!!
| MCSE+M/S, MCITP, VCP6.5-DCV - ''Life can be hard, but Scooter is harder :)'
regent
aktív tag
ùgy érted ha nem nagybetüüt írsz elsöö karaktenek?
Pedig még a help mintában is ez van.
[Szerkesztve]
<{Opal}> mert amikor a férfi kódol, akkor csak a férfi van és a kód, olyankor nem kell nő, mert olyankor a nő egy bug, érteitek?
jeges
senior tag
akkor mi is van a maszkban:
''>L<?????''
vagy
''?a<LLLLL''
kraftxld
nagyúr
A maszkban >L<????? van írva; a hiba jelzésben viszont már ?a<????? ezt irja vissza.
| MCSE+M/S, MCITP, VCP6.5-DCV - ''Life can be hard, but Scooter is harder :)'
kraftxld
nagyúr
Ha például nem írok be csak három karaktert. Az első karaktert kisbetűvel írom.
| MCSE+M/S, MCITP, VCP6.5-DCV - ''Life can be hard, but Scooter is harder :)'
Gh0sT
addikt
Kérdés:
Adott két dátum:
1. Érkeztetés dátuma
2. Döntés dátuma
A kettő különbsége az ügyletek átfutási ideje. Namost ez szép és jó, de valahogyan ki kellene vennem a kapott értékből a szombat és vasárnapi napokat, mert így elég torz értékeket kapok.
Ötlet?
Szerk.:
Kérdés2:
Hogy a halálba adok értéket egy kombipanelnek? A sima kombipanel.value-val valamiért nem tudok, mert a VB folyamatosan hibával kidob. Illetve akkor dob ki, ha olyan panelhoz rendelek értéket, amelyikben vannak legürdülő elemek. Pedig még az értékek is jók...
[Szerkesztve]
Soha nem késő, hogy azzá válj, aki lehettél volna.
Gh0sT
addikt
Ezt még nem próbáltam, megnézem...
Szer.: hmmm... nincs lenght tulajdonsága a mezőnek...
[Szerkesztve]
Soha nem késő, hogy azzá válj, aki lehettél volna.
Gh0sT
addikt
Egy UP magamnak, hogy a koránkelők lássák a topicot!
jeges!
Hol vagy ilyenkor?
Soha nem késő, hogy azzá válj, aki lehettél volna.
Sunzi
aktív tag
Kerdes 1-re: szaz eve csinaltam, biztos lehet egyszerubben, meg lehet belole takritani, de mukodik. A munkanapokat szamolja.
Function Workdays(DF2 As Variant, DT2 As Variant) As Integer
If IsNull(DF2) = False And IsNull(DT2) = False Then
If IsDate(CDate(DF2)) And IsDate(CDate(DT2)) Then
Dim DC As Date, Cnt As Integer
Dim DF As Date, DT As Date
DF = CDate(DF2)
DT = CDate(DT2)
DC = DF
Cnt = 0
Do While DC <= DT
Select Case WeekDay(DC)
Case 1
Case 7
Case Else
Cnt = Cnt + 1
End Select
DC = DateAdd(''d'', 1, DC)
Loop
Workdays = Cnt
Else
Workdays = 0
End If
End If
End Function
Kerdes 2: pedig a value a jo elvileg, csak az nem mindegy, hogy a lsitaban megjeleno adat, vagy a combo Row Source-jaban szereplo masik ertek kerul eltarolasra (mondjuk az adat kodja). Ez esetben ugyanis a kodot kell ertekkent megadni. Ez a Bound column property-bol derul ki, vagy, ha megnezed a tablaban az adatokat. Szerintem.
[Szerkesztve]
Ízirájder öcsém, ízirájder...
Sunzi
aktív tag
En bena. a fenti kodban a Case szekciot nyilvanvaloan kicserelheted if-re is, csak annak idejen univerzalisabba akartam tenni a fv-t, de nem kerult ra sor vegul...
Ízirájder öcsém, ízirájder...
Gh0sT
addikt
Hát, ez nekem úgy kínai, ahogy van...
Egyáltalán hova kellene ezt írnom? Meg mi van a két mezővel (Érkeztetés dátuma; Döntés dátuma)? Hogy rakom én ezt bele egy lekérdezésbe? Ne adj isten egy űrlapba?
Segg hülye vagyok...
Soha nem késő, hogy azzá válj, aki lehettél volna.
Gh0sT
addikt
Ok, megoldottam... Űrlapon már működik... Viszont csak egyszeresen... Folyamatoson hogyan tudnám működésre bírni?
Szerk.: ez is megoldva!
[Szerkesztve]
Soha nem késő, hogy azzá válj, aki lehettél volna.
Gh0sT
addikt
Mégsincs megoldva...
Az a baj, hogy a mezők neveiben szóköz van... Ilynkor mit csinálok? DF2 és DT2-vel működik, de nekem Érkeztetés dátuma és Döntés dátuma van. Próbáltam szögletes zárójelekkel, de nem ment.
Soha nem késő, hogy azzá válj, aki lehettél volna.
Sunzi
aktív tag
Szia.
No, ha meg nem tetted, akor ajanlatos letrehozni egy uj modult, es a fuggvegy kodjat bemasolni. Ennek eredmenyekepp a fenti fugvenynevet barhonnan hasznalhatod (akar query-ben, akar form-on), csak a bemeno parametereket kell megadni.
En elvbol nem hasznalok ekezetes, space-s mezoneveket, de, pl, query-ben a szogletes zarojelnek mukodnie kellene, de probald ki ebben a formaban is: [tablanev].[mezonev]
Udv.: S.
Ízirájder öcsém, ízirájder...
regent
aktív tag
Ez mintha nem kezelné az ünnepnapokat, csak a hétvégéket. Vagy rosszul látom?
Nálunk fapadosabban volt megolva. A srác aki egy hasonló programmal dolgozott, csinált egy táblát a munkanapokkal, és év végén feltöltötte a következöö évre valót az aktuális naptár alapján.
Nem tellett 10 percébe, és kezelte a kivételes ünnepnapokat, sööt a félnapokat is.
<{Opal}> mert amikor a férfi kódol, akkor csak a férfi van és a kód, olyankor nem kell nő, mert olyankor a nő egy bug, érteitek?
Gh0sT
addikt
Köszönöm, időközen sikerült megoldanom. A kettes problémával viszont nem boldogulok. Egyszerűen nem tudok értéket adni a kombipanelnak. Kiolvasni ki tudom belőle, de itt meg is halt a tudomány...
Soha nem késő, hogy azzá válj, aki lehettél volna.
Sunzi
aktív tag
Nem kezeli, nem volt a kerdesben
Unnepnapokra nincs is mas megoldas, csak, amit Te irsz, hiszen, az ilyen hetfo=szombat trukkoket mashogy nem lehet kezelni.
Ezt a bena kis fv-t meg ugyesen ki lehet egesziteni, vagy irni hozza egy masikat, ami a tablaba bevitt adatokat is figyelembe veszi.
Ízirájder öcsém, ízirájder...
Sunzi
aktív tag
Kuldtem mail-ben egy peldat.
Udv:S.
Ízirájder öcsém, ízirájder...
Gh0sT
addikt
Úgy érzem, hogy blokkolta a gmail... Esetleg ha átnevezed jpg-re, azt megenné.
Soha nem késő, hogy azzá válj, aki lehettél volna.
Sunzi
aktív tag
ment ujra...
Ízirájder öcsém, ízirájder...
Gh0sT
addikt
Na, megkaptam... és a tieddel is sikerült ugyanazt a hibát produkálnom.
Elmondom, hogy mit kellene tennem. Ha megnyitom az űrlapot, akkor le kellene futnia egy feltétel vizsgálatnak.
A Te példáddal élve mondjuk:
Private Sub Form_Open(Cancel As Integer)
If Me.DATA_1.Value = ''AB'' Then
Me.DATA_PARAM.Value = ''A''
End If
End Sub
Na és itt dob ki egy hibával. Simán gombbal én is tudok neki értéket adni, de a megnyitáshoz kellene hozzárendelnem az értékadást.
Szerk.: közben kicsit elgondolkodtam és nem a Form_Open, hanem a Form_Load utasításhoz rendeltem hozzá a feltételt... és láss csodát, valamiért azzal meg működik. Már csak az a kérdés, hogy mi a különbség a megnyitás és a betöltés között?
Szerk2.: Köszönöm az eddigi segítséget!
[Szerkesztve]
Soha nem késő, hogy azzá válj, aki lehettél volna.
Sunzi
aktív tag
Az OnOpen akkor kovetkezik be, ha kiadtad az open parancsor (vagy klikkelsz), ekkor meg nem biztos, hogy az adatok is rendelkezesre allnak, amivel dolgozni akarsz (hosszabb query pl. egy tavoli szerveren).
Az Onload akkor fut, amikor az adatbetoltes mar biztosan megtortent.
Ízirájder öcsém, ízirájder...
Gh0sT
addikt
Kérdés:
Hogyan lehet űrlapról adatokat exportálni egy gombnyomásra egy Excel táblába? Azt tudom, hogy a Fájl menüből mauálisan megy, de nekem gombhoz kellene hozzárendelnem a műveletet.
Soha nem késő, hogy azzá válj, aki lehettél volna.
Gh0sT
addikt
UP a mindenit!
Soha nem késő, hogy azzá válj, aki lehettél volna.
jeges
senior tag
bocs, most nincs időm próbálgatni, de a docmd.domenuitem eljárásra keress rá a helpben, azzal lehet menü-funkciókat meghívni. vigyázz rá, h minden sorszám nullával kezdődik, és nem ugyanaz a menüstruktúra szerkesztő és normál nézetben
rlph
tag
Hali!
Nincs vkinek egy access adatbázisa, ami tartalmaz legalább 5 táblát és űrlapokkal lehet feltölteni?
Szép az élet b@szni jó éljen Szovjetúnió ----- by Norbi
rlph
tag
up!!!!!!!!!!!!!!
Szép az élet b@szni jó éljen Szovjetúnió ----- by Norbi
jeges
senior tag
hát pl a microsoftnak van, talán még le is lehet tölteni (northwind.mdb)
mákostészta
tag
Sziasztok!
Hogyan lehetne egy excelben lévő nyilvántartást (terméknév, darabszám, nettó érték stb) áttenni Accessba? Van jónáhány -számtech- alaktrész és ezeket szeretném egy Access adatbázisba tenni. Hozzá szeretnék rendelni minden termkékhez egy vonalkódot ( kb 11 szám) is. Tudna ebben vki segíteni?
Köszi!
Az igazság odaát van! Na jó, de mi az igazság, és én ideát vagy odaát vagyok?
mákostészta
tag
UP!
Az igazság odaát van! Na jó, de mi az igazság, és én ideát vagy odaát vagyok?
Gh0sT
addikt
Létrehozol egy üres adatbázist, aztán Fájl menü --> Külső adatok átvétele --> Importálás
A vonalkód hozzárendelést pedig megcsinálod tervező nézetben. Csak be kell vinned egy plusz mezőt.
Bár nem értem, hogy miért kell ehhez Access?! Excelben nem jó? Vagy több tábla lenne? Esetleg szeretnél lekérdezéseket csinálni?
Soha nem késő, hogy azzá válj, aki lehettél volna.
mákostészta
tag
Igen, szeretnék lekérdezéseket csinálni vonalkód alapján... Köszi a segítséget, kipróbálom!
Az igazság odaát van! Na jó, de mi az igazság, és én ideát vagy odaát vagyok?
erdey_a
őstag
Üdv! Jajj de jó, hogy ven ez a topik, ide is bemásolom a gondom.
Szóval arról van szó, hogyvannak hozzánk beérkező alkatrészek, amiket bizonyos gyakorisággal és mintanagysággal ellenőrizni kell.
Nagyságrendileg 50ezer féle alkatrész megy át a kezünkön.
Ennek 3/4 részéve nem kell foglalkozni, de a maradék is sok.
Jelenleg minden alkatrésznek vizsgálatonként van egy-egy mérőlapja, amin a mért értékeket dokumentáljuk.
Ha tehát beérkezik a 123-456-789 rajzszámú cikk, akkor nyomtatunk egy üres mérőlapot, amire a rajz alapján felvesszük a fontosabb méreteket és a szállítmányból vett mintákon mért értékeket ezek mellett dokumentáljuk és eldöntjük hogy jó-e szállítmány vagy sem. Namost ugye ez rengeteg papírmunka és papírlap.
Ezért lenne jó egy adatbázis, amibe folyamatosan töltenénk fel az adatokat.
Tehát mondjuk a rajzszámot a mérőlap mintájára készített táblázatba beírva automatikusan megjelennének az egyéb adatok (beszállító neve, cikkszám, egyéb azonosítók, amik az adott alkatrészre jellemzőek és változatlanok) illetve a megfelelő kockákban megjelennének a mérendő értékek, amik alkatrészekre jellemzőek és alkatrészenként különbözőek. Ezek mellé pedig az üres kockákba beírnánk manuálisan a mért értékeket. A következő beérkezésnél pedig már a korábban mért értékek is látszódnának, így lehetne követni a darab történetét, változásait.
E-mailben tudok küldeni egy excel táblát, amilyennek elképzelem az egész formátumot és annak kitöltését.
Vérboci
erdey_a
őstag
UP nekem...
Access guruk ide, ide!
Vérboci
Gh0sT
addikt
Dobj egy mailt, megnézem!
Soha nem késő, hogy azzá válj, aki lehettél volna.
Gh0sT
addikt
Kérdés:
Még mindig le vagyok ragadva a dátumkezelésnél. A következőt találtam ki:
Felviszek egy táblát, aminek az első oszlopában szerepelnének 2006. napjai január 1-től december 31-ig. Mellé a következő oszlopba rögzítek egy 0-t, vagy 1-t annak megfelelően, hogy munkanapról, vagy egyébről van szó.
Namost van nekem minden egyes esetben két dátumértékem, amikkel kellene kezdenem valamit. A baj az, hogy a dátumok tarlatlmazzák az aktuális óra:perc:mp adatokat is. Gondolom ezt valamilyen függvénnyel el tudom távolítani, hogy év.hónap.nap formátumot kapjak. Ha képzem a két érték különbségét, akkor megkapom a köztük lévő eltelt napok számát, de ezt hogyan hozom össze a dátumos táblámmal?
Soha nem késő, hogy azzá válj, aki lehettél volna.
jeges
senior tag
hi!
workday() függvény nem segít? ez megmondja, h a hét hanyadik napja az adott dátum.
év.hó.nap formátumot format-tal tudsz megadni, a napokat numerikusként kezeli az access is, a percek, másodpercek nem befolyásolják a napok különbségét. ha munkanapokban akarsz különbséget számolni, ahhoz jobb a külön tábla megoldás, amit Te is írtál. elképzelhető olyan megoldás is emlékeim szerint, h csak a ''normálistól'' eltérő munkanap-rendet tárolod egy táblában (pl. ünnepnapok), de ez nem 100%.
anno csináltam dátumkezelő függvényeket, de rá kéne keresni a gépen. ha a fentiek nem oldják meg a problémát, keresgélek kicsit...
jeges
senior tag
lejárt közbe' az idő...
méér köll ''összehozni'' a különbséget a dátumos táblával?
egyébként a dátumkezelés az access-ben is úgy működik, h a dátum egész része a napokat, a törtrésze pedig az óra, perc, mperc-eket jelenti.
Gh0sT
addikt
Megköszönném a segítséget, mert teljesen meg vagyok lőve.
Az a baj, hogy nem ismerem a VB-s függvényeket, és a VB-hez sem értek, csak hellyel-közzel. Ha van valami alap, akkor azt talán át tudom írni, de többre nem vagyok képes.
A formátummal a következő a problémám: itt nálunk kötelezően év.hónap.nap.óra.per.másodperc formátumot használunk a pontosság érdekében. Két dátumérték kerül rögzítésre:
1. Beérkezés időpontja
2. Döntés időpontja
Na most nekem átfutási időket kellene számolni. Eddig úgy oldottam meg, hogy egyszerűen kivontam a két értéket egymásból és kaptam egy közelítőt, de ez ugye a hétvégék/ünnepek miatt pontatlan volt. Említette valaki itt a topicban, hogy be lehetne rögzíteni az egész éves naptárat és máris minden jobb lenne. Nade:
A naptár rögzítése a következő formában történne ugye:
2006.01.01 0
2006.01.02 1
2006.01.03 1
stb... Ezzel viszont az a baj, hogy az én dátumértékeimet valahogyan meg kellene feleltetni a fenti táblában szereplő értékeknek. Tehát a 2006.01.02 15:31:11-et hozzá kellene rendelnem a 2006.01.02-höz és így tovább... Na ez nem megy nekem... Bár igazság szerint azzal sem tudom, hogy mire mennék... A fenti táblából lövésem nincs hogyan lehet különbséget képezni... Az még OK, hogy az érkezési dátumot megfelelettem a tábla egyik dátumának, aztán a döntési dátumot is. Viszont mi van a közte lévő idővel?
Váááá, hülye vagyok én ehhez...
[Szerkesztve]
Soha nem késő, hogy azzá válj, aki lehettél volna.
jeges
senior tag
a táblás megoldás szerintem a köv. módon kivitelezhető:
tárolod a munka- és munkaszüneti napokat pl. úgy, h a munkanap ''mellett'' 1, a munkaszüneti nap ''mellett'' 0 az érték.
mivel a dátum tárolásában csak az egész rész ''játszik'', ezért a tábláknak mindegy, h 10:03:42 vagy 17:12:04.
pl:
A tábla: rekordonként eltárolva a dátum1 és dátum2, és van egy ID mezője is
B tábla dátumok és 0/1 értékek (''Datum'' és ''ertek'' mezők)
L1 lekérdezés (''normál'' select A és B join):
select A.ID, B.ertek
from A inner join B on (A.datum1<=B.Datum and A.datum2>B.Datum)
;
L2 lekérdezés (összegzés A tábla ID mezőjére):
select ID, sum(ertek)
from L1
group by ID
;
L2 eredménye azon 1 értékek összege, ahol az A tábla két dátuma ''közé'' esik a B tábla dátum mezője.
Megjegyzem, ha pl. nem 0 és 1 a B tábla ertek mezőjének értéke, úgy a COUNT() függvény is jó lenne, csak köllene egy WHERE záradék L1-be. Például ha a B.ertek Y vagy N, úgy
L1 lekérdezés (''normál'' select A és B join):
select A.*, B.ertek
from A inner join B on (A.datum1<=B.Datum and A.datum2>B.Datum)
where B.ertek=''Y''
;
L2 lekérdezés (összegzés A tábla ID mezőjére):
select ID, count(ertek)
from L1
group by ID
;
ui1: Egyetlen lekérdezésből is megoldható egyébként, de így átláthatóbb szerintem.
ui2: A konkrét szintaxisra már nem emlékszem, az elvet akartam leírni. Ha ''gyártasz'' az access-ben egy ''normál'' lekérdezést, sql nézetben a fentiekhez hasonlókat fogsz látni.
Gh0sT
addikt
Kínom van megint:
Adott az általam készített adatbázis, amit használunk jó sokan. A mai nap folyamán érdekes jelenség ütötte fel a fejét: sok esetben megsérül az adatbázis és helyre kell állítanom. Namost ez a helyreállítás úgy történik, hogy mondom az Access-nek, hogy csinálja meg, mire jó is lesz, viszont a mérete a felére csökken ezáltal.
Értetlenül állok a probléma előtt. Most megpróbálom kideríteni, hogy kinél sérül meg, de ez a méretcsökkenés igencsak aggasztó a számomra. A múlt héten belekerült egy olyan rekord valami hiba folytán, ami mindenféle idióta jeleket jelenített meg és törölni sem tudtam. A sérülést követően a kapcsolatok megszűntek a táblák között, így a rossz rekordtól végleg megszabadultam, a kapcsolatokat pedig felépítettem. De hogy most mi van vele, azt végképp nem értem...
Soha nem késő, hogy azzá válj, aki lehettél volna.
Gh0sT
addikt
Sikerült rájönnöm, hogy a munkafolyamat bizonyos fázisában törétnik a probléma. Úgy tapasztaltam, hogy két olyan user és gép van, ami szétbarmolja az adatszerkezetet, de nem értem, hogy miért. Most pl. egy olyan rekord halt meg, amihez hozzá sem nyúlt senki jó ideje. Egyszerűen csak krikszkrakszok lettek az összes mező helyén adatok gyanánt. Ennek eredményeként a hivatkozási integritást a kapcsolatok nem tudták fenntaratni és elszállt az egész, mint a győzelmi zászló. Már csak azt nem értem, hogy ha fenn van tarta a kapcsolt mezők között a hivatkozási integritás, akkor egyáltalán hogyan lehet más adatot bevinni a mezőbe. Mert itt az történik és ez okozza a problémát. Egyáltalán mitől jelennek meg ezek a ŁłäđĐ karakterek a mezőkben? Hiszen űrlapokkal dolgozunk és abban a fázisban egy csomó zárolt cella van, amit nem is lehetne módosítani. Olyan az egész, mintha elcsúszna valamitől az adatszerkezet...
Mit csináljak?
Soha nem késő, hogy azzá válj, aki lehettél volna.
jeges
senior tag
mekkora az adathalmaz? úgy értem, cca hány rekord van az egyes táblákban? nekem volt olyan tapasztalatom, hogy bizonyos méret fölött nem működnek korrektül a funkciók, ilyenkor sűrűn köll helyreállítani/tömöríteni az adatbázist (egyébként valamelyik access verzió óta a helyreállítás és tömörítés egyetlen menüpontban van, emiatt lehet a méretcsökkenés).
három lehetőséget látok, amennyiben méret-problémáid vannak:
a. optimálisabb adatszerkezet (minél normalizáltabb, minél kisebb helyet igénylő táblák)
b. archiválás
c. minél sűrűbb javítás/helyreállítás/tömörítés
Jelzem, valszeg egy idő után egyébként is szükségessé válik a b. verzió, úgyhogy ideje elgondolkodni rajt'.
(egyébként ezt az adatszerkezet elcsúszás dolgot nem biztos, hogy értem)
kicsit kevés az info a korrekt javaslatokhoz, pl. kérdéses:
1. kliens/szerver módon működik a dolog vagy a user gépén parancsikon van a központi alkalmazásra?
2. van vmi konfigbeli különbség a megjelölt két user gépén a többihez képest? (access verzió, win verzió, hálózati elérés, esetleg user csoport-tagság)
3. a user az űrlapon keresztül közvetlen az adatbázisba ír vagy van vmi köztes tábla, ami az OK-gombra átmásolja az ellenőrzött adatokat? (a postod alapján azt mondanám, hogy a zárolás a központi adatokon történik, azaz közvetlen a központi táblákba ír)
4. látni kéne a munkafolyamathoz tartozó modult. milyen folyamat zajlik a gépen?
Gh0sT
addikt
Nos, akkor részletesen:
Jelenleg kb. 300 rekord található a táblákban, ami véleményem szerint nem sok. Az adatszerkezet sajnos közel sem optimális. Teszt jelleggel készítettem az egészet és az igények növekedésével csak toldozgattam, javítottam rajta így magát az eredeti adatszerkezetet egy idő után már nem mertem bántani. Valóban lehetne ez az egyik probléma, és aláírom hogy ez nagy hiba volt, de nem fér a fejembe, hogy ami egyik nap működik, az másnap miért nem. Alapvető hibák nincsenek az adatbázis szerkezetében, ebben egészen biztos vagyok. A normalizálást pedig meg lehetett volna jobban is csinálni...
Jelenleg kb. óránként mentem az egész adatbázist és ha probléma van, akkor helyreállítom. Viszont ezen a héten semmi ilyesmit nem észleltem. Annyi korlátozó intézkedést hoztam, hogy azon az üzleti területen, ahol sejtettem a hiba okát csak egy gépet engedek be egyszerre az adatbázisba. Kicsit kényelmetlen, de így legalább nincs probléma.
Működés:
1. Az egész adatbázis egy hálózati meghajtón van, amihez az érintettek hozzáférhetnek. A konfigok különböznek sajnos.
2. Míg az NT-s gépeken semmi probléma nem volt soha, addig Win2000 alatt már korábban is voltak fagyások. Az Access verziószáma az összes gépen megegyezik.
3. A userek az űrlapokon keresztül közvetlenül az adatbázisba írnak, nincsenek köztes táblák és ellenőrzés.
4. Az adott területen annyi történik, hogy egy legördülő menüből kiválasztanak egy nevet, beírnak pár értéket és klikkelnek egy gombra, ami megváltoztatja az ügyletek státuszát. Ezen kívül van egy rakat ellenörző rutin, ami az adatok töltöttségét és helyességét vizsgálja.
Igazából annak az esélye, hogy szándékosan rossz adatot írjanak be, gyakorlatilag egyenlő a nullával.
Közben elgondolkodtam egy teljesen más rendszeren és éppen most sajátítom el az alapjait. Úgy gondoltam, hogy megcsinálom ismét az egészet az alapoktól, most már maximálisan odafigyelve a táblákra és a normalizálásra is. Az adatbázishoz MS SQL Servert fogok használni és VB-n keresztül hívnám meg a lekérdezéseket, illetve magát a felületet is így készíteném el. Ezzel az ACCESS-t sikerülne teljesen kiküszöbölnöm. Remélem össze fog jönni...
Soha nem késő, hogy azzá válj, aki lehettél volna.
Mai Hardverapró hirdetések
prémium kategóriában
- AKCIÓ Új Dobozos Macbook Pro dokkoló új ára 70.000 forint
- ThinkPad Hybrid USB -C USB -A Dock 40AF Új ára 80.000 Forint Ingyen szállítás
- Xiaomi Redmi Note 9s 128/6 GB 34.9E !!!
- Új Hp Pavilion 15-eh Fémházas Szuper Laptop 15,6" -30% AMD Ryzen 7 5700U 8Mag 16/1TB FHD MATT
- ATI RADEON RX 480 -8 gb DDR5 256 bit videokártya