Access - spojovací funkce pro textová pole Vyřešeno

...

Moderátor: Mods_senior

marie1eagle
nováček
Příspěvky: 3
Registrován: září 21
Pohlaví: Žena

Access - spojovací funkce pro textová pole  Vyřešeno

Příspěvekod marie1eagle » 26 zář 2021 22:28

Dobrý den,

prosím vás o radu. Učím se Access na VŠ a mám domácí úkol se kterým si nedokáži poradit. Potřebuji vytvořit funkci v modulu, která spojí 2 libovolné argumenty (textová pole) MEZEROU. tzn. že musím udělat funkci na "mezeru" kterou pak třeba použiji na spojení jména a příjmení nebo katedra a vyučujícího atd...
Nevím co napsat mezi závorky a pak do řádku pod tím.

Public Function Funkce()

End Function


Děkuji moc za rady.

Marie

Reklama
Uživatelský avatar
cervcek
Level 5
Level 5
Příspěvky: 2195
Registrován: leden 12
Bydliště: Vrchlabí
Pohlaví: Muž

Re: Access - spojovací funkce pro textová pole

Příspěvekod cervcek » 27 zář 2021 00:08

Ahoj a vítej na PC-help.

Předpokládám, že Access používá pro definování uživatelských funkcí VBA, snad neurazím tím, že s tím nemám přímou zkušenost. S domácím úkolem bych ti stejně neradil stylem "okopíruj si tohle", ale popostrčím tě k řešení.

Nejprve obecný úvod do toho, co tedy je funkce a jak funguje - pokud chceš funkci předávat nějaká data, pak musíš použít parametry funkce - to je to, co se dává mezi kulatý závorky za název funkce, v tomto případě budou dva.

Kód: Vybrat vše

int Soucet(int x, int y){
return x+y;
}

Kód: Vybrat vše

Soucet(2, 6);

pak bude použití (volání) funkce s konkrétními daty

Na přiloženém kódu lze vidět, že chceme sečíst 2 čísla, musíme tedy funkci tato čísla nějak předat - zde tedy přes argumety x a y. Dále si lze všimnout toho, že funkce nemá před sebou modifikátor přístupu (public, nebo private), pokud není uvedeno ani jedno, tak je automaticky použito public, který se tedy psát nemusí. Další věcí k povšimnutí je to, že funkce vrací nějakou hodnotu, takže by měla být funkce stejného datového typu, jako je návratová hodnota (pokud by nic nevracela, používáme typ void), VBA používá "As Datatype" až za kulatým závorkami. Mezi složenými závorkami je zde tělo funkce - sem se píše to, "co funkce dělá", ve VBA je to všechno před "End Function".

Toto byla syntaxe jazyka C, syntaxi VBA si můžeš najít třeba v online dokumentaci, dlouho jsem v ní nic nepsal, takže se do ní raději nepouštím
Občas jsem trošku natvrdlý, takže se mou mějte, prosím, trošku trpělivost.
Děkuju za vaše názory a rady. :thumbup:

marie1eagle
nováček
Příspěvky: 3
Registrován: září 21
Pohlaví: Žena

Re: Access - spojovací funkce pro textová pole

Příspěvekod marie1eagle » 27 zář 2021 00:20

Ahoj a děkuji za tvojí odpověď,

Teorii trochu znám, mám skripta, ale ze skript moc nechápu jak to mám složit dohromady. Cokoliv mě napadlo, tak mi nefungovalo a zkoušela jsem to celou minulou noc. Já spíš potřebuji už poradit co tam mám napsat, jelikož někde dělám chybu a nemůžu na to přijít.

Děkuji moc za pomoc.

Uživatelský avatar
cervcek
Level 5
Level 5
Příspěvky: 2195
Registrován: leden 12
Bydliště: Vrchlabí
Pohlaví: Muž

Re: Access - spojovací funkce pro textová pole

Příspěvekod cervcek » 27 zář 2021 00:30

No tak pokud víš, jak to naprogramovat, tak už jen správnou syntax VBAčka podle odkazu, co jsem poslal. Případně sem můžeš vložit svůj kód a buď se pokusím já, nebo někdo, kdo VBAčko umí líp, najít chybu, kterou tam máš.

Dodatečně přidáno po 4 minutách 37 vteřinách:
případně až nebudeš vědět kudy kam, a budeš to chtít vzdát, tak koukni třeba sem: https://wellsr.com/vba/2018/excel/vba-c ... ampersand/
Občas jsem trošku natvrdlý, takže se mou mějte, prosím, trošku trpělivost.
Děkuju za vaše názory a rady. :thumbup:

Uživatelský avatar
ITCrowd
Tvůrce článků
Guru Level 13
Guru Level 13
Příspěvky: 21686
Registrován: březen 10
Pohlaví: Muž

Re: Access - spojovací funkce pro textová pole

Příspěvekod ITCrowd » 27 zář 2021 07:34

S access nepracuji, kdyby to bylo v excelu, tak bych to uměl.
Nicméně potřebuješ vyřešit jak načíst z accessu jednotlivé hodnoty (v excelu by se to tahalo z buněk). Syntaxe pro spojení je:

Kód: Vybrat vše

vysledek = jmeno & " " & prijmeni
kde proměnné jmeno a prijmeni obsahují text jména a příjmení vytažené z accessu. Proměnná vysledek pak obsahuje "jméno příjmení".
Případně lze mezeru v uvozovkách nahradit kódem ascii

Kód: Vybrat vše

vysledek = jmeno & chr(32) & prijmeni

Teoreticky lze použít i "+", ale uřetězců (text) je lépe použít ampersand "&". Ten řekne jasně, že jde o spojení řetězců (textů).
Zkusili jste to vypnout a zapnout? Problémy řeším pouze v tématech. Do SZ mi proto píšete zbytečně.
Základní diagnostika WiFi Jak na diagnostiku sítě Router jako switch Proč je nesmysl chtít router s velkým dosahem Vybíráme router

Uživatelský avatar
cervcek
Level 5
Level 5
Příspěvky: 2195
Registrován: leden 12
Bydliště: Vrchlabí
Pohlaví: Muž

Re: Access - spojovací funkce pro textová pole

Příspěvekod cervcek » 27 zář 2021 10:47

No jak předá u funkce hodnoty je jasný, už jsem to zde radil, přeci přes parametry tý funkce - zjednodušeně řečeno přes obsah kulatých závorek, to je základ programování :-)
Občas jsem trošku natvrdlý, takže se mou mějte, prosím, trošku trpělivost.
Děkuju za vaše názory a rady. :thumbup:

marie1eagle
nováček
Příspěvky: 3
Registrován: září 21
Pohlaví: Žena

Re: Access - spojovací funkce pro textová pole

Příspěvekod marie1eagle » 28 zář 2021 03:36

Děkuji za pomoc. Už to funguje :)


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • černé pole na ploše
    od coufi » 15 dub 2021 21:37 » v Windows 10, 8, 7..
    0
    259
    od coufi
    15 dub 2021 21:37
  • funkce FILTER a COUNTIF (?)
    od Lůjík » 12 říj 2021 11:03 » v Kancelářské balíky
    1
    290
    od elninoslov
    12 říj 2021 13:38
  • Špatná funkce ikon na ploše
    od Johnsix95 » 01 bře 2021 11:28 » v Windows 10, 8, 7..
    15
    1295
    od ITCrowd
    05 bře 2021 23:23
  • Excel zapsat do buňky název listu (ne aktivního, ale každého zvlášť. Funkce Políčko nefunguje)
    od Beeeep » 20 led 2021 20:47 » v Kancelářské balíky
    4
    689
    od Beeeep
    21 led 2021 08:48

Zpět na “Vše ostatní (sw)”

Kdo je online

Uživatelé prohlížející si toto fórum: CommonCrawl [Bot] a 1 host