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
Access - spojovací funkce pro textová pole Vyřešeno
-
- nováček
- Příspěvky: 3
- Registrován: září 21
- Pohlaví:
- Stav:
Offline
Re: Access - spojovací funkce pro textová pole
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.
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
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
Děkuju za vaše názory a rady. 

-
- nováček
- Příspěvky: 3
- Registrován: září 21
- Pohlaví:
- Stav:
Offline
Re: Access - spojovací funkce pro textová pole
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.
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.
Re: Access - spojovací funkce pro textová pole
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/
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/
Děkuju za vaše názory a rady. 

-
- Pohlaví:
Re: Access - spojovací funkce pro textová pole
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: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
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ů).
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
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ů).
Re: Access - spojovací funkce pro textová pole
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í 

Děkuju za vaše názory a rady. 

-
- nováček
- Příspěvky: 3
- Registrován: září 21
- Pohlaví:
- Stav:
Offline
Re: Access - spojovací funkce pro textová pole
Děkuji za pomoc. Už to funguje :)
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host