Hirdetés

2024. május 2., csütörtök

Gyorskeresés

Hozzászólások

(#201) nofreenick válasza jeges (#197) üzenetére


nofreenick
aktív tag

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)

(#202) jeges válasza nofreenick (#201) üzenetére


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 :U


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]

(#203) nofreenick válasza jeges (#202) üzenetére


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 :U túlórázni meg nem fogok emiatt :)

(#204) kraftxld


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) :F

| MCSE+M/S, MCITP, VCP6.5-DCV - ''Life can be hard, but Scooter is harder :)'

(#205) kraftxld


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 :)'

(#206) jeges válasza kraftxld (#205) üzenetére


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]

(#207) kraftxld válasza jeges (#206) üzenetére


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 :)'

(#208) regent válasza kraftxld (#207) üzenetére


regent
aktív tag

ùgy érted ha nem nagybetüüt írsz elsöö karaktenek?

Pedig még a help mintában is ez van. :F

[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?

(#209) jeges válasza kraftxld (#207) üzenetére


jeges
senior tag

akkor mi is van a maszkban:
''>L<?????''
vagy
''?a<LLLLL''
:F

(#210) kraftxld válasza jeges (#209) üzenetére


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 :)'

(#211) kraftxld válasza regent (#208) üzenetére


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 :)'

(#212) Gh0sT


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.

(#213) Gh0sT válasza regent (#199) üzenetére


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.

(#214) Gh0sT válasza Gh0sT (#212) üzenetére


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.

(#215) Sunzi válasza Gh0sT (#212) üzenetére


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

(#216) Sunzi válasza Sunzi (#215) üzenetére


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

(#217) Gh0sT válasza Sunzi (#215) üzenetére


Gh0sT
addikt

Hát, ez nekem úgy kínai, ahogy van... :O

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.

(#218) Gh0sT válasza Gh0sT (#217) üzenetére


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! :D

[Szerkesztve]

Soha nem késő, hogy azzá válj, aki lehettél volna.

(#219) Gh0sT válasza Gh0sT (#218) üzenetére


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.

(#220) Sunzi válasza Gh0sT (#219) üzenetére


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

(#221) regent válasza Sunzi (#215) üzenetére


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?

(#222) Gh0sT válasza Sunzi (#220) üzenetére


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.

(#223) Sunzi válasza regent (#221) üzenetére


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

(#224) Sunzi válasza Gh0sT (#222) üzenetére


Sunzi
aktív tag

Kuldtem mail-ben egy peldat.

Udv:S.

Ízirájder öcsém, ízirájder...

(#225) Gh0sT válasza Sunzi (#224) üzenetére


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.

(#226) Sunzi válasza Gh0sT (#225) üzenetére


Sunzi
aktív tag

ment ujra...

Ízirájder öcsém, ízirájder...

(#227) Gh0sT válasza Sunzi (#226) üzenetére


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. :F 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? :F

Szerk2.: Köszönöm az eddigi segítséget! :)



[Szerkesztve]

Soha nem késő, hogy azzá válj, aki lehettél volna.

(#228) Sunzi válasza Gh0sT (#227) üzenetére


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

(#229) Gh0sT


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.

(#230) Gh0sT válasza Gh0sT (#229) üzenetére


Gh0sT
addikt

UP a mindenit! :)

Soha nem késő, hogy azzá válj, aki lehettél volna.

(#231) jeges válasza Gh0sT (#229) üzenetére


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

(#232) rlph


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

(#233) rlph


rlph
tag

up!!!!!!!!!!!!!!

Szép az élet b@szni jó éljen Szovjetúnió ----- by Norbi

(#234) jeges válasza rlph (#232) üzenetére


jeges
senior tag

hát pl a microsoftnak van, talán még le is lehet tölteni (northwind.mdb)

(#235) mákostészta


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? :C :R :F :U

Köszi!

Az igazság odaát van! Na jó, de mi az igazság, és én ideát vagy odaát vagyok?

(#236) mákostészta


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?

(#237) Gh0sT válasza mákostészta (#235) üzenetére


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?! :F Excelben nem jó? Vagy több tábla lenne? Esetleg szeretnél lekérdezéseket csinálni? :F

Soha nem késő, hogy azzá válj, aki lehettél volna.

(#238) mákostészta válasza Gh0sT (#237) üzenetére


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?

(#239) erdey_a


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

(#240) erdey_a válasza erdey_a (#239) üzenetére


erdey_a
őstag

UP nekem...
Access guruk ide, ide!

Vérboci

(#241) Gh0sT válasza erdey_a (#239) üzenetére


Gh0sT
addikt

Dobj egy mailt, megnézem!

Soha nem késő, hogy azzá válj, aki lehettél volna.

(#242) Gh0sT


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? :F

Soha nem késő, hogy azzá válj, aki lehettél volna.

(#243) jeges válasza Gh0sT (#242) üzenetére


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

(#244) jeges válasza jeges (#243) üzenetére


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.

(#245) Gh0sT válasza jeges (#243) üzenetére


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? :F
Váááá, hülye vagyok én ehhez...



[Szerkesztve]

Soha nem késő, hogy azzá válj, aki lehettél volna.

(#246) jeges válasza Gh0sT (#245) üzenetére


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.

(#247) Gh0sT


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

É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... :F

Soha nem késő, hogy azzá válj, aki lehettél volna.

(#248) Gh0sT válasza Gh0sT (#247) üzenetére


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? :O

Soha nem késő, hogy azzá válj, aki lehettél volna.

(#249) jeges válasza Gh0sT (#248) üzenetére


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?

(#250) Gh0sT válasza jeges (#249) üzenetére


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

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.

Copyright © 2000-2024 PROHARDVER Informatikai Kft.