< návrat zpět

MS Excel


Téma: VBA - automatické přidání položky do formuláře rss

Zaslal/a 13.10.2016 10:56

Zdravím, vytvořil jsem si jednoduchou evidenci skladových zásob. Tlačítko "Zapsat změnu" vše funkční bez problémů. Ale následně vznikl požadavek na přidávání položek což jsem udělal tak, že se přidá sloupec a zapíše se počáteční hodnota.
Ale nevím jak novou položku přidat do formuláře pro změnu stavu (naskladnění, použití). Jde nějak kódem jednoho formuláře změnit kód toho druhého?
Mohl by někdo poradit?

Zaslat odpověď >

Strana:  « předchozí  1 2 3   další »
icon #033178
eLCHa
A když na tom řádku stisknete F8 stane se co?citovat
#033179
avatar
Označí se mi Sub OnlyNumbers()
V případě, že tam zapíšu chybu - např. frmEvidence namísto frmEvidence1 (používám na rozdíl od příkladu 2) vyhodí mi to chybu, že není definovaná proměnnácitovat
#033180
avatar
Jinak to po najetí na "TextBox" ukazuje v bublině "frmEvidence1.ActiveControl = nothing"citovat
#033183
avatar
Protoze jsme presunuli TextBoxes do Frame, tak je treba pozmenit (trochu krkolomne) proc OnlyNumbers:

Sub OnlyNumbers()
If TypeName(frmEvidence.ActiveControl.ActiveControl) = "TextBox" Then
With frmEvidence.ActiveControl.ActiveControl
If Not IsNumeric(.Value) And .Value <> vbNullString Then
MsgBox "Pouze cisla...", , "Pozor"
.Value = vbNullString
End If
End With
End If
End Sub

Vyzkousejte a dejte vedet.
Dik
sydcitovat
#033188
avatar
Zkoušel jsem tam nějak dostat ten frame, ale zdvojit ActiveControl mě nenapadlo. Děkuju
Ještě jeden poznatek - když nebyly textboxy ve framu, měl jsem v OnlyNumbers frmEvidence1 a frmEvidence2 a šlapalo to jak mělo.
Po zdvojení ActiveControl to vyhazovalo neznámou toho druhého formuláře. Takže jsem vytvořil ještě jeden eventHandler a onlynumbers jsem vytvořil také dvě - z každého formuláře vyvolávám jiný eventHandler a tím i onlyNumbers - asi by to šlo elegantněji, ale funguje to jak má a já jsem spokojen.
Ještě jednou díky.citovat
icon #033190
eLCHa
Já do těch příloh nekoukal - ale z toho co vidím jen poznámka

místofrmEvidence.ActiveControl.ActiveControlkde frm předpokládám je formulář je lépe použítfrNeco.ActiveControlpřípadně z externího modulufrmEvidence.frNeco.ActiveControlkde frNeco je název toho vašeho frame.
Je to detail, ale pokud víte přesně co chcete, je vždy lépe to definovat, než potom hledat výjimky - vždy musíte myslet na to, že časem kód můžete měnit a něco doplnit a potom ty automatické záležitosti (zde ActiveControl) mohou dělat neplechu.

A ještě jedna poznámka - frame asi vůbec nebylo potřeba - i formulář má ScrollBars ;)

Ale pokud to funguje...citovat
#033195
avatar

eLCHa napsal/a:

frmEvidence.frNeco.ActiveControlkde frNeco


Nevim, zda to ma vyznam, ale ten Frame je pridany dynamically (kodem). To co pisete dava smysl a jiste jsem to zkousel, ale kupodivu to neslo a hodilo chybu.
Jedine timto zpusobem activecontrol.activecontrol se to podarilo obejit.

eLCHa napsal/a:


A ještě jedna poznámka - frame asi vůbec nebylo potřeba - i formulář má ScrollBars ;)


Tohle me napadlo taky, nez jsem se probadal k tomu active.active...
Jak rikam, nemam zkusenosti, jen jsem si zkousel a uzivatel mel dalsi pozadavky... nechtel jsem se tim moc zabyvat... A nekde jsem cetl ze se Frame pokud mozno z daleka vyhybat.

sydcitovat
icon #033196
eLCHa
já frame používám roky a nikdy žádný problém.ořezávám podle něj formulář a má to pak hezčí okraje ;))
pravda je, že ho nikdy nepřidávám dynamicky - pouze jeho děti. je to takový prvek, který vím, že tam bude a tak nemá cenu ho dávat kódem...citovat
#033200
avatar

syd napsal/a:

eLCHa napsal/a:frmEvidence.frNeco.ActiveControlkde frNeco

Nevim, zda to ma vyznam, ale ten Frame je pridany dynamically (kodem). To co pisete dava smysl a jiste jsem to zkousel, ale kupodivu to neslo a hodilo chybu.
Jedine timto zpusobem activecontrol.activecontrol se to podarilo obejit.
syd

frNeco jsem tam zkoušel dát a nezprovoznil jsem to - bohužel jsem lama a zdvojení ActiveControl mě nenapadlo, ani nevím jak bych se k tomu dostal.
ScrollBar jsem zkoušel přímo do formuláře taktéž - bez výsledku.
Ještě jednou děkuji za pomoccitovat
#033201
avatar

eLCHa napsal/a:

já frame používám roky a nikdy žádný problém.ořezávám podle něj formulář a má to pak hezčí okraje ;))

Spise to bylo mysleno ohledne dynamickeho pridani, a ze pak je problem s nekterymi Eventy pro controls, kt. jsou soucasti Frame... Jinak je to asi uzitecny, o tom zadna.

xawerius napsal/a:


...ScrollBar jsem zkoušel přímo do formuláře taktéž - bez výsledku.
Ještě jednou děkuji za pomoc

Ja kdyz jsem o tom premyslel, tak v tomto pripade se tedy posouva cely form a tudiz i CommandButtons. A ja chtel, aby byly na pevno, na ocich (jako uzivateli by mi vadilo posouvat pak nekam pro potvrzovaci tlacitko) - proto jsem pouzil Frame.. Ale i to by se taky asi dalo nejak vyresit..

Jinak diky za feedback...

sydcitovat

Strana:  « předchozí  1 2 3   další »

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

Makro na opakovanou změnu barvy tlačítka

Jiří497 • 26.1. 20:31

Pozvyhledat s vnořeným COUNTIF

Jiří497 • 26.1. 19:36

Makro na opakovanou změnu barvy tlačítka

alois1111 • 26.1. 13:24

Pozvyhledat s vnořeným COUNTIF

majovy-bycek • 26.1. 12:45

Makro na opakovanou změnu barvy tlačítka

alois1111 • 26.1. 12:32

Makro na výmaz hodnoty pouze v modře podbarvené

Anonym • 26.1. 11:29

SVYHLEDAT (generovaná cesta oblasti vyhledávaní)

eLCHa • 26.1. 10:05