» »

MS Access

MS Access

«
1
2

SmeskoSnezak ::

Obstajajo kaki tutoriali na internetu ali pa kaksna knjiga o Accessu, da bi se lahk poucil o tem programu? Kaj pa poizvedovanja, pisanje SQL stavkov?
@ Pusti soncu v srce... @

Tavher ::

SmeskoSnezak ::

Bible edicije poznam. A je vse not zajeto od začetniškega znanja al kak je to sploh mišljeno Bible? Kot celotna enciklopedija?
@ Pusti soncu v srce... @

Ericssony ::

zavajon ::

Ericssony je izjavil:

Off-topic: namesto Accessa si reja poglej Microsoft Visual Studio Lightswitch

S tem se ne bi strinjal. Pri teh Third Party toolsih vsi radi reklamirajo, da ni potrebno nič kodiranja. V demotih je na emp, dept tabelah res vse OK, a realno življenje je drugačno. Prej ali slej prideš do situacije, ko brez kodiranja in SQL-a ne gre. Pa tudi sicer je znanje SQL-a dobro že zato, da se ti princip relacijskih baz "vcepi v glavo". Access je čisto dobro orodje za učenje programiranja baz, kajti hitro lahko narediš nekaj, kar je tudi zares uporabno. Seveda pa ta ni primeren za kakšne večje baze z več uporabniki, kar je ponavadi. Prešaltati kasneje na kakšno drugo kodo in različico SQL-a ni problem.

On-topic: Za začetek vzemi čimtanjšo knjigo o Accessu, ni važno, za katero verzijo je, lahko tudi za 2.0. Pa ne samo brati, ampak naredi vse primere. Gotovo bo tam vsaj one-to-many relacija in master-detail forma. Nato si vzemi tako, kjer je bolj poglobljeno obdelan VBA. Ko boš prvič naletel na to, da bo z VBA kaj bolj enostavno narediti kot z wizzardom, boš vedel, da si na pravi poti ;)

SmeskoSnezak ::

Ja, saj iscem knjigo ki bi me skozi primere vodila od zacetniskega pa vse tja do bolsega znanja :)
@ Pusti soncu v srce... @

Zgodovina sprememb…

SmeskoSnezak ::

Za zacetek bi rad, da vi izberete eno, ki je po vasem mnenju dobra. Jaz se bom zgubil v preveliki izbiri :))
@ Pusti soncu v srce... @

technolog ::

V MS Access se ne splača vlagat znanja in časa. To je po mojem mnenju res za vse M$ stvari.

SmeskoSnezak ::

Splaca se mi, ce bom placan za to :PP
@ Pusti soncu v srce... @

dolenc ::

Zdej odvisno kaj boš delal. Če ne boš iz nule pisal aplikacije, je bolše da se ne naučiš preveč :)

Predelaj osnove, toliko da se v okolju znajdeš, da veš zakaj sploh gre, kaj je poizvedba, kak stavek ali dva v sql in vba in to je to.

Ker bo vsaka firma imela svoj način dela, ki ga boš hitreje osvojil ob delu in naučil se boš nekih "internih" standardov dela, da ne boš preveč po svoje haral. Access se da precej izkoristit, ker ti pusti boga in pol in če gre za mal bolj kompleksno zadevo, bo aplikacija in razvojno okolje tako, da ga v knjigah ne boš našel. Koncepte, ki moraš osvojit pa so splošni, relacijsko-bazni in ne ravno specifično Accessovski.

Moj nasvet bi bil, loti se bilo kere literature, ostalo boš osvojil ob delu, ko ti bo približno jasno zakaj gre, pa lahko svoj ščepec znanja dodaš.

zavajon ::

Smeško, s čimerkoli se nameravaš ukvarjati, naredi tako, da boš zadevo res obvladal. Strategije kot "znaš sql stavek ali dva, potem pa se v okolju znajdeš", funkcionirajo v hollywoodskih filmih, v realnem življenju pa preverjeno ne. Žal je opaziti trend naraščanja takega načina razmišljanja.

SmeskoSnezak ::

Mene samo zanima ena knjiga, da mi bo čimlažje štartati iz enostavnih stvari v bolj komplicirane. Saj malce phpja in sqla ze znam, zato nocem neke knjige s pretirano vsebino, ampak bolj z prakticnimi vajami in napotki, da cimprej izbolsam znanje in osvojim Access.
@ Pusti soncu v srce... @

Marat ::

Pojdi v CTK in si sposodi Sams teach yourself SQL in 10 minutes (Ben Forta). Ta je čisto v redu za začetek.

Marat ::

Evo, še ena: Uporaba informacijskih orodij v poslovanju / Jure Erjavec ... [et al.]. Ta te dobro uvede v MS Access, uporablja se pa QBE (neke vrste visual SQL). Sicer pa se v Accessu itak sam odločaš ali boš uporabljal QBE ali SQL pogled.

SmeskoSnezak ::

Bolje bi bilo, če je angleška, mi zelo pomaga izbolšat angleščino. Pa hvala vsem.
@ Pusti soncu v srce... @

technolog ::

Kaj ti koristi SQL pri Access-u. Le-ta ima namreč čisto en svoj čuden dialekt.

zavajon ::

Kaj je tako čudnega? Select, update, insert, join, where, exists, group by, having,... je enako kot pri ostalih.

Ericssony ::

The Devil is in the details >:D

zavajon ::

Ericssony je izjavil:

The Devil is in the details >:D

To itak, ampak pri programiranju vedno in povsod ;)

Sam sem se pred skoraj 20 leti začel učiti programiranja z bazami na Access 2.0.
Ko sem kasneje prešel na Oracle, ni bilo nobenih težav. Pa takrat Oracle še ni imel outer joinov z JOIN, ampak s (+). Važno je razumevanje principov relacijskih baz, in ti veljajo tudi v Access.
V bistvu sem imel še največ težav z objekti Oracle Forms (canvas, block, window).

SmeskoSnezak ::

Okey. Imam en primer za vas. Tabela z osebami in njihovimi informacijami. Rad bi naredil query z osebami, kjer potrebujem najti določene lastnosti iz enega stoplca. To sem že naredil. Zdaj pa bi rad zraven dodal še ljudi, ki imajo določeno lastnost v drugem stolpcu. Kako pa zdaj dodam še slednje?

p.s.: Koda sedaj zgleda tako? Lahko tak naredim?
SELECT oseba.*, oseba.stolpec1, oseba.stolpec2
FROM oseba
WHERE (((oseba.stolpec1) Like "*lastnost1*" Or (oseba.stolpec1) Like "*lastnost2*" Or (oseba.stolpec1) Like "*lastnost3*") OR ((oseba.stolpec2) Like "*lastnost5*"));


p.p.s.: Nope, ni razlike. Če pa dam namesto OR AND, pa mi omeji rezultate, namesto poveča.
@ Pusti soncu v srce... @

Zgodovina sprememb…

papasmrk ::

V službi uporabljam največ Oracle, ampak priznam da pride prav Access, ko je potrebno neko tekstovno datoteko uvozit in uparit z excelom, šifrant oseb je pa v neki MS SQL tabeli. To se da z Accessom precej hitro narediti...

SmeskoSnezak ::

Lahko kdo hitro odpiše, kaj mi je za narediti?
@ Pusti soncu v srce... @

Tody ::

Tebi pomoje niso lih jasne osnove SQL

Že v selectu imaš izberi vse iz tabele oseba potem pa še določiš stolpec 1 in stolpec 2? Nevem lih zakaj če imaš pa izbrano vse, če bi jih v obratnem vrstnem redu zapisal potem bi še razumel.

Drugače pa nevem v čem je lih problem, sintakso si poglej na netu, če ne znaš klikat po stolpcih

Select * from osebe
where
lasje='rjavi' // to je tvoj stolpec 1
and visina > '180' // to je tvoj stolpec 2
and ime like 'Jan*' //

Če pa hočeš združiti več ljudi (tisti ki so blond in tisti ki so rjavi) pa lahko uporabljaš IN operator, lahko recimor tudi selektiraš 2x iz iste tabele samo drug alis jim daš ... Malce bolj konkreten primer za bolj natančno rešitev :)

SmeskoSnezak ::

Jaz bi rad dodal ljudi, z lastnostmi iz drugega stolpca k ze izbranim ljudem z lastnostmi iz prvega. Torej kako narediti alias ali kaj zelis povedati?
@ Pusti soncu v srce... @

technolog ::

A nima LIKE procenta (%) kot univerzalni matcher, na zvezdice?

Tody ::

Ms se nikoli ne drži standardov zakaj se bi jih zdaj? * dela samo v access-u.

Glede dodajanja stolpcev mi ni čisto jasno kako jih boš dodal, če izbereš vse torej * (ta ni ista k za like ;)) boš imel vse stolpce neglede na to kake kriterije boš napisal. Če hočeš osebe iz druge tabele pripopat zdraven je druga zgodba. Tukaj access nima kaj dosti zdraven najprej moraš logiko povedat :)

SmeskoSnezak ::

Poglejta si kodo zgoraj. Prvo sem naredil da izberem vse osebe z lastnostmi iz stolpca1. To razumeta?
Zdaj pa bi rad temu queriju dodal še osebe, ki imajo lastnost še iz drugega stolpca. Mogoče moram dva querija naredit pa ju združit? Sprašujem, ker se mi ravno tu zatika ...

torej imam recimo 40 ljudi s queryjem, kjer sprašujem po več lastnostih iz stolpca 1. hočem pa tem 40 ljudem dodati še ljudi s queryjem, kjer sprašujem po lastnosti iz drugega stolpca. torej 40 + 17 ljudi, ker recimo ko filtriram tabele posebej, dobim takšne številke. samo združit pa jih ne znam.

recimo ta koda je za prvih 40 ljudi.
SELECT oseba.*, oseba.stolpec1 FROM oseba WHERE (((oseba.stolpec1) Like "*barva_las*" Or (oseba.stolpec1) Like "*barva_oci*" Or (oseba.stolpec1) Like "*visina*") 

kako dodati še ostalih 17, ki imajo lastnost _whatever_ iz stolpca2 k tem 40 ljudem. nočem pa da se osebe ponavljajo, ker je v teh 17 že nekaj oseb, ki so zajeti v prejšnem kriteriju in spadajo med onih 40...
@ Pusti soncu v srce... @

zavajon ::

Z UNION bo šlo ;)

SmeskoSnezak ::

Hmmm... bom sprobal, pa da vidim, če mi uspe.
@ Pusti soncu v srce... @

ToniT ::

Preveri malo oklepaje!
Meni dela s tem:
SELECT Oseba1.Lastnost1, Oseba1.lastnost2, Oseba1.ID, Oseba1.Lastnost1
FROM Oseba1
WHERE (((Oseba1.Lastnost1) Like "*leva*")) OR (((Oseba1.lastnost2) Like "*prve*")) OR (((Oseba1.Lastnost1) Like "*des*"));

SmeskoSnezak ::

Na oklepaje se pa res nisem spomnil.

Kako pa bi nasel v tabeli recimo vse ljudi z neko izobrazbo, ce vsak malce po svoje napise recimo Bachelor , BSc, B.Sc., s tem da moram izvzeti Masterje, vse pa je zapisano v enem polju torej kot ena lastnost? To mi sedaj dela hude preglavice in sem že čist zmeden.
@ Pusti soncu v srce... @

Zgodovina sprememb…

SmeskoSnezak ::

Zdaj bi rad zmansal iskanje te lastnosti tako, da mi ne bi izpisalo polj, kjer vrednost ni zapisana.

Koda je takole, a noče delat.

SELECT oseba.*, oseba.izobrazba
FROM person
WHERE ((oseba.izobrazba) Is Not Null);
@ Pusti soncu v srce... @

Tody ::

null pomeni da so polja prazna in da nimajo notri nikakršnega znaka ne presledka ne pike ne nič. Poglej če je polje res prazno. Nevem tudi zakaj rabiš oklepaje tukaj ali pa je to samo MS fora?

Kar se tiče iskanja pa good luck chuck, mamo vsi probleme s tem. Tukaj lahko recimor napišeš samo like B*

SmeskoSnezak ::

Mnja, sem opustil to. Je pa zabavno se učiti SQL na praktičnih primerih.

Mislim da je MS fora, ker jih je včasih še več za prazn nič.
@ Pusti soncu v srce... @

Zgodovina sprememb…

technolog ::

Toddy, null ni enako praznemu polju/stringu.

Drgač access ima res en lame dialekt SQLa.

SmeskoSnezak ::

Imam en nov zanimiv problemcek, s katerim se ukvarjam.

Imam te ljudi, ki imajo vsak svoje podatke. Nekateri ljudje so prisotni v drugi tabeli z enim ID-jem iz te prve tabele. Narediti query za dvojne ali več ID-jev v prvi tabeli je šlo, težave imam s querijem, kjer bi rad videl vse podatke od teh ljudi, ki si delijo ta ID. Namreč query za dvojne ID-je mi samo izpiše koliko je teh dvojic, noče pa izpisat podatkov od ljudi.

Kak narediti ta query?

p.s.:Že uspel, dejansko je na istem linku kot najdi duplikate.
Če koga zanima: http://office.microsoft.com/en-us/acces...
@ Pusti soncu v srce... @

Zgodovina sprememb…

SmeskoSnezak ::

Spet imam rahlo tezavico... gre se za iste ljudi z lastnostmi. Recimo, da bi rad tocno dolocenim ljudem poslal mail. Tile ljudje so tudi v Excel datoteki, a le ti! Zdaj, ko v Excelu dam sortiranje in filtriranje s tocno dolocenimi pogoji , mi izbere vse te ljudi. A ko delam query v Accessu s temi pogoji, mi ne pokaze nekaterih teh ljudi, hkrati pa mi doda druge. A je query res tako bolj zapleten kot filtriranje v Excelu? Saj pa je na nek nacin isti smorn, samo da pac filtriras podatke v bazi.
@ Pusti soncu v srce... @

SmeskoSnezak ::

Aja, se ena stvar. Rad bi naredil podatkovno bazo , s temi istimi ljudmi, samo da bi jo zaprl na geslo al enkriptiral , pac da bi bla varna, ce jo dam na splet za dolocene osebe, ki bi imele dostop in bi dobile pol to geslo ... al kako je s tem. Kaksen nasvet bi mi prav prisel, kaj na iscem na spletu al kako naj napreduje ucenje tudi v to smer.
@ Pusti soncu v srce... @

Tody ::

Za ta nove zadeve nevem ampak ta stari si moral kr še kak programček napisat da si lahko zaklenu zadevo. Lock access na googlu najde nekaj zadetkov nevem pa če to to. Nevem tudi kako to deluje da zadevo daš svetu na voljo, nekako je cela jeba z upodatanjem tega in onega...

Če že lih bi pošiljal maile si raje omisli phplist oz za samo bazo uporabi mysql in phpmyadmin.

Selektiranje je pa seveda čisto drugačno kot pa filtriranje v excelu. Medtem ko excel ignorira razliko med " to je test" in "to je test" (presledek spredaj) jo query ne in ti bo to najdu samo če boš dal like in % spredaj.

Aja kljub mysql lahko še zmeraj uporabiš acess za masko samo namesto tabele mu podaj view

Zgodovina sprememb…

  • spremenil: Tody ()

SmeskoSnezak ::

A je kaksna razlika med PostgreSQL bazo, MS Access in Oracle, če uporablaš in delaš vse v MS Access 2010?
@ Pusti soncu v srce... @

SmeskoSnezak ::

MS Access je očitno case-sensitive, saj dobim tri različne rezultate (enkrat mala začetnica, drugič velika, tretjič pa dam zvezdico namest črke).
@ Pusti soncu v srce... @

Zgodovina sprememb…

Tody ::

oracle ma sicer funkcijo za "odpravo" te težave imenuje se upper oz lower in vse črke da v velike oz male.

SmeskoSnezak ::

Kako naredit naslednji query.

Vprasanje... Imam dve tabeli. V eni imam ljudi s tistimi lastnostmi in celimi imeni. V drugi tabeli imam le id-je in neke tretje lastnosti teh oseb, ne pa imen. Rad bi v prvi tabeli izbral ljudi, ki imajo v drugi tabeli tiste id-je, katere iscem, saj bi rad imel seznam ljudi z imeni.

Zaenkrat sem tole naredil:
SELECT DISTINCT tabela2.*
FROM tabela2
WHERE (((tabela2.lastnost1) Like "*lastnost*"));

S tem mi prikaze ljudi iz druge tabele. Te ljudi pa bi rad mel z imeni iz prve tabele. Potrebujem povezavo, a mi je ne uspe narediti.
Poskusal sem tole:
SELECT DISTINCT tabela1.*
FROM tabela1, tabela2
WHERE (((tabela2.lastnost1) Like "*lastnost*"));

A mi izbere cist vse osebe...
@ Pusti soncu v srce... @

Tody ::

Povežeš lahko samo ID-je med sabo nemoreš rečt da je ključ za povezavo Janez.

SmeskoSnezak ::

Ja, saj hocem povezat ID-je, samo hocem, da se izpisejo imena iz prve tabele, ker v drugi tabeli nimam imen.
@ Pusti soncu v srce... @

Tody ::

Še enkrat accessovo kodo ne bom šel pisat ker je ne poznam

Drugače pa takole:

select tab1.ime, tab2.priimek from tab1, tab2 where tab1.id=tab2.id

tab1.* pomeni da prikažeš vse stolpce v tvojem queriju pa ni nikjer napisanega pravila (pogoja) za to kako naj se te dve tabeli povežeta. Če ne daš pogoja dobiš kartezični produkt, kjer računalnik upari vsako vrstico z vsako iz druge tabele.

SmeskoSnezak ::

Torej takole?
SELECT tabela1.* , tabela2.id
FROM tabela1, tabela2
WHERE (((tabela2.lastnost1) Like "*lastnost*") AND (tabela1.id=tabela2.id));

Bom preizkusil in porocam.
@ Pusti soncu v srce... @

SmeskoSnezak ::

Imam tole kodo:
SELECT DISTINCT osebe.*
FROM osebe
WHERE ((osebe.sluzba) Like "*podjetni*")
UNION SELECT DISTINCT osebe.*
FROM osebe
WHERE ((osebe.opravila) Like "*vozi*")
UNION SELECT osebe.id, osebe.name, osebe.surname, vprasalnik.id
FROM osebe, vprasalnik
WHERE (((vprasalnik.dnevna_opravila) Like "*opravlja*") AND (osebe.id=osebe.id));

In mi izpise error The Number of columns in the two selected tables or queries of a union do not match. Kaj delam narobe?
@ Pusti soncu v srce... @

Tody ::

V obeh stavkih more bit enako število stolpcev

SmeskoSnezak ::

Stavkih? Ne razumem. To sta dve cist razlicni tabeli in seveda imata tudi razlicno stolpcev.
@ Pusti soncu v srce... @
«
1
2


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

C# težava

Oddelek: Programiranje
232951 (1797) mladec
»

[SQL] Unikatni izpisi

Oddelek: Programiranje
211741 (1128) 111111111111
»

[Java] Evidenca delovnega časa - Java v navezi z Accessom

Oddelek: Programiranje
392964 (2184) c0dehunter
»

[Access] bolj napredni query

Oddelek: Programiranje
51087 (925) mHook
»

problem v C#

Oddelek: Programiranje
211676 (1391) dvojka

Več podobnih tem