Biztosan az a panasza, hogy az al-lekérdezés 1-t ad vissza és nem az, hogy többet?
Próbáld ki így:
SELECT AllomasNev, LAF, LAP, LAS FROM TeljesTabla WHERE (AllomasNev IN (SELECT DISTINCT AllomasNev FROM TeljesTabla TeljesTabla_1))
(Viszont így is visszad minden sort a TELJES_TABLA-ból! :-(( )
"de csak egyszer kell megjelenjen a bogarászás közben a hozzá tartozó adatsor"
A megjelenítendő 4 mező tartalma egyforma egy adott állomásnév esetében? Ha igen, akkor: SELECT DISTINCT AllomasNev, LAF, LAP, LAS FROM TeljesTabla Ha nem, akkor neked kell eldöntened, melyik legyen a megjelenítendő!
VS2008 basicban készül egy kis alkalmazás. ebben van egy tábla, sok oszlop, sok sor.
a teljes adatmennyiséget tartalmazó táblából kellene kihalászgatni rekordokat, illetve azoknak csak néhány celláját. a gondom az, hogy a kiválasztás közben distinct kellen figyelni egy oszlopot. adott a tábla amiben az allomasnev oszlop többször is szerepelhet, de csak egyszer kell megjelenjen a bogarászás közben a hozzá tartozó adatsor. erre a VS querybuilder felület ezt a kódot adta:
SELECT AllomasNev, LAF, LAP, LAS FROM TeljesTabla WHERE (AllomasNev = (SELECT DISTINCT AllomasNev FROM TeljesTabla TeljesTabla_1))
na ezt hajlandó futtatni, de panasszal él, miszerint az allekérdezés csak egy rekordot ad vissza.
nem tudom, érthető volt-e a kérdés, mindenesetre nem találom, hol a hiba?
Hálás vagyok a gyors válaszért, de az öröm nem felhőtlen. Ha beírom a javasolt SQL sort, azt jelzi, hogy: Compile error. Expected: list separator or ). Pedig majd kiesik a szemem a nézésbe, de nekem akkor is vessző van a két változó között és a zárójelek is párban vannak. Másik buta kérdésem: hogyan kell értéket adni a változóknak (pontosabban hol)? Mi a helyes szintaktika? Zavaró lehet-e, ha a táblanevekben és a mezőnevekben ékezetes karakter van?
Teljesen új vagyok itt, de remélem, egy ismeretlen számára is lesz segítség. :-)
Egy Access tábla (A) könyvek adatait tartalmazza (nem ez a feladat, de ez érthetőbb példa). Adatbevitelre külön form szolgál. Az adatok között van olyan, ahol több-a-többhöz kapcsolat van definiálva pl. egy könyvhöz több, akárhány szerző tartozhat. A szerzőket egy másik tábla (B), a kapcsolatot vagyis a könyv azonosítóját és a szerző azonosítóját egy harmadik tábla (C) tartalmazza. A szerző(k) kiválasztása comboboxból történik, ami a B táblán alapul. Hogyan kell megírni a kódot vagy a makrót a click tulajdonsághoz vagyis egy szerző kiválasztásához hogy az a C táblához egy-egy új rekordot fűzzön, amely a könyv azonosítóját és a szerző azonosítóját tartalmazza? (Az Access legújabb verziójában lévő lehetőség, a több értékű mező, mint megoldás, nem jöhet szóba, mert az adatbázis szerkezete már adott és adatok is vannak benne bőven.) A hozzáértő segítséget előre is köszönöm!
Szöveg hosszát a Tábla tervezőnézetben tudod állítani a kívánt mező tulajdonságainál (első a méret).
Ahhoz, hogy egy ügyfélnek több kapcsolata is lehessen, ahhoz tedd meg a következőket.
1. létrehozol egy új táblát, pl Kapcsolatok néven, aminek a mezői legyenek ID, Kapcsolat, Ügyfél ID (vagy ami szimpatikus neked).
Az ID lehet Autonumber (elsődleges kulcs), a Kapcsolat sima Szöveg, melynek méretét beállíthatod annyi karakter hosszúra, amekkora elég (max. asszem 255 lehet), Az Ügyfél ID legyen olyan típusú, mint az Ügyfél tábla elsődleges kulcsa (általában Long Integer), ez lesz az idegen kulcs.
2. Létrehozol egy 1:N kapcsolatot az Ügyfelek és a Kapcsolat tábla között.
(Kapcsolatok (Relationships) menüpontban hozzáadod a két táblát, és összekötöd a Kapcsolat idegen kulcsát (Ügyfél ID-t) az Ügyfél tábla elsődleges kulcsával.)
Ezzel elérted, hogy egy ügyfélnek több kapcsolata is lehet.
Ahhoz, hogy ez formban szépen megjelenjen, külön rekordokként, és még szerkeszthető is legyen, ahhoz érdemes két formot egybeágyazni, vagy esetleg egyből egy osztott űrlappal dolgozni (Access 2007). Ezt leírni elég hosszadalmas lenne, de nézd meg ezt, ha még nem tetted. Remélem segíteni fog.
Ha elég, hogy csak megjelenjenek a kapcsolatok, de nem kell őket módosítani, akkor érdemesebb egy ListBox-ban megjeleníteni a kapcsolatokat egymás alatt.
Egyszerű problémával fordulnék hozzátok. Egy űrlapon paraméteres lekérdezéssel jelenítek meg hőmérséklet adatokat. Egy lekérdezés az adatforrás. Három beviteli mezőbe íratnám ki az adott időszakra a minimum, maximum és az átlaghőmérsékletet. A szűrt rekordok szépen meg is jelennek egy segédűrlapon, de a kifejezés értékei a szövegmezőben csak akkor jelennek meg, ha a menűsoron rákattintok a szűrés űrlappal majd szűrésre. és még plusz a három szövegmezőbe is kattintani kell, hogy lássam a számított adatokat. /min(), max(), sum()/count(*))/ Ha egyszerűen ez automatikussá tevető megköszönném a megoldást.
A különböző rekordok ügyfeleket tartalmaznak adataikkal együtt. Van azonban egy "kapcsolat" mező, amiben a kontaktálások tartalmát lehet leírni.
Egyrészt az volna a kérdés, hogy hogyan lehet növelni ennél a szöveg mezőnél a beírható karakterek számát.
Másrészt pedig szeretném ha ez a kapcsolat mező külön táblában lenne és minden rekordnál több kapcsolat mezőt között lehetne váltani, újat létrehozni, magyarán a kapcsolat mező mint külön rekord működne.
Köszönöm a választ. Nem sokkal a kérdés feltevésem után (pár hét) meg lett nálam is a megoldás, majd otthon megnézem és bevágom ide, én mire jutottam:)
Az lenne a feladatom, hogy access alól elérjem az openoffice writer-ét.
A következő kóddal próbálkozok:
Sub firstOOoProc ()
Dim oSM As Object 'Root object for accessing OpenOffice from VB Dim oDesk As Object Dim oDoc As Object 'First objects from the API Dim arg() 'Ignore it for the moment !
'Instanciate OOo : this line is mandatory with VB for OOo API Set oSM = CreateObject("com.sun.star.ServiceManager") 'Create the first and most important service Set oDesk = oSM.createInstance("com.sun.star.frame.Desktop")
'Create a new doc Set oDoc = oDesk.loadComponentFromURL("private:factory/swriter", "_blank", 0, arg()) 'Close the doc oDoc.[Close] True Set oDoc = Nothing
'Open an existing doc (pay attention to the syntax for first argument) Set oDoc = oDesk.loadComponentFromURL("file:///M:/OpenOff/TestDoc/test.odt", "_blank", 0, arg()) 'Save the doc oDoc.[storeToURL] "file:///M:/OpenOff/TestDoc/test2.sxw", arg() 'Close the doc oDoc.[Close] True Set oDoc = Nothing
End Sub
A Set oSM = CreateObject("com.sun.star.ServiceManager") sornál elszáll "Az alábbi objektumosztály nem található: 'com.sun.star.ServiceManager'." hibával.
Mindez csak akkor történik, ha Power Userként vagyok bejelentkezve. Adminként működik.
Tippje lenne valakinek, hogyan lehetne Power Userként is használni?
Tudtok esetleg arra valamilyen megoldást; hogy egy jelentésen lévő mező annak megfelelően változtassa a betűtipusa nagyságaát; hogy hány karakter hosszú benne a szöveg? Magyarán lehetőleg mindig férjen ki..
Az lenne a feladatom, hogy egy segédűrlap nézetét váltogassam futás közben űrlap és adatlap nézet között. Erre tudnátok valami kódot mutatni, hogyan lehetne?
A DefaultView-t néztem de az nem jó, mert csak megnyitáskor alkalmazza azt a beállítást nekem meg egy már megnyitott űrlapnál kellene a nézet váltás.
annyit segítek, hogy magyar accessben (pl: lekérdezéstervezőben) pontosvesszőt(;) használunk vessző(,) helyett a függvénynek adandó paraméterek elválasztására. (de VB-ben már megint csak vessző)
tehát ha a tizedes után .5 van, akkor a párosokat lefelé, a páratlanokat fölfelé kerekíti. Állítólag a különböző összesítéseknél a sum érték így közelebb lesz a valósághoz.