Convert VBA to Macro

Ce este nou in Microsoft Access 2010?
Informatii despre cum se utilizeaza Microsoft Access 2010.
Baze de date, Interogari, Formulare, Rapoarte, etc
SharQue99
Mesaje: 71
Membru din: Vin Noi 02, 2012 3:06 pm

Convert VBA to Macro

Mesaj de SharQue99 » Lun Mai 02, 2016 5:30 pm

Salutare din nou. Vad in in ultima vreme este cam liniste pe forum si mi-am zis ca e momentul ca o stric eu, in a doua zis de Pasti.
Concret, vreau ca baza mea de date sa o public online si cum baza de date web nu suporta vba, trebuie sa convertesc toate vba-urile in macro.

Un singur cod imi da batai de cap si anume :

Cod: Selectaţi tot

Private Sub Denumire_DblClick(Cancel As Integer)
On Error GoTo Err_ListCustomers_DblClick
   Forms!comenzi!id_client = Me.ID_client
   Forms!comenzi!denumire_client = Me.denumire_client

   DoCmd.Close acForm, "cautare_client", acSaveYes
    
   Exit_ListCustomers_DblClick:
    Exit Sub

Err_ListCustomers_DblClick:
    MsgBox Err.Description
    Resume Exit_ListCustomers_DblClick
End Sub
Acest cod il folosesc in fereastra Dialog a form-ului "cautare_client" cand la dublu click inchide fereastra si copiaza id-ul si denumirea clientului din form-ul inchis in form-ul comenzi.

Aveti idee cum ar trebui sa arate acest cod in format macro si nu vba ?

Va multumesc frumos pentru ajutor.

Tzica
Mesaje: 619
Membru din: Sâm Aug 11, 2012 10:52 pm

Re: Convert VBA to Macro

Mesaj de Tzica » Mar Mai 03, 2016 7:48 am

Doar ca idee, eu neatingand nivelul de publicare a unei BD..zic eu ca , comanda SetValue e cheia pentru astfel de operatiuni.
Set Value
Nu cred (sa nu pot sa-mi dau seama) daca e cazul sa se creeze un grup Macro (asta pentru usurinta in urmarire/depanare)... dar in orice caz, formularul clienti musai sa ramana deschis, pentru a putea prelua numele clientului prin comanda Set Value.Echivalentul macro pentru SetFocus fiind..GoToControl.Deci comanda macro ar trebui sa fie de genul:
1. If (conditii pentru preluarea numelul clientulu, fie formular deschis fie, campul IDclientt sa nu fie nul, (caz in care poate e necesar sa deschidem formularul de adaugare client...cu tot ce decurge de aici..adica oareace MsgBox cu optiuni de renuntare comanda, optiune de adaugare client (poa sa fie o simpla eroare de butonare..in fine,...)).Daca nu e nul (clientul exista in baza de date) atunci:
2.Go To Control Forms!ListCostumers!Client. (se "concentreaza" pe clientul selectat).
3.Open Form!Comenzi (pentru adaugare comanda noua);
4. SetValue.Forms!frmComenzi!idClient = Forms!ListCostumers!Client.

(cam asa as vedea eu, comanda macro...dar nu am cum sa testez, necunoscand implicatiile ..publicarii). :oops:

LE: Poate e de ajutor:
Working With Macros

SharQue99
Mesaje: 71
Membru din: Vin Noi 02, 2012 3:06 pm

Re: Convert VBA to Macro

Mesaj de SharQue99 » Mar Mai 03, 2016 2:22 pm

Eu banuiesc ca trebuie sa fie bazat pe "tempvar" si anume sa salveze un variabila temporara cu valoarea campului pe care vreau sa o copieze, sa inchida form-ul cautare_client si apoi sa puna valoarea in campul in care doresc eu.
Am tot incercat dar nu ii dau de cap.
Daca are cineva o idee, va rog sa mi-o spuneti.
Va multumesc frumos.

Ca idee, ca sa deschid din lista_clienti un form cu un anumit client am urmatorul cod, poate se inspira cineva si isi face cineva o idee cum ar trebui sa arate codul care imi trebuie mie ( vezi atasament).
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

Tzica
Mesaje: 619
Membru din: Sâm Aug 11, 2012 10:52 pm

Re: Convert VBA to Macro

Mesaj de Tzica » Mar Mai 03, 2016 4:17 pm

Ehh..
1.Cred ca nu e ok, ca variabila sa aiba acelasi nume precum campul (IdClient).Incearca sa redenumesti respectiva variabila;
2.Incearca si ce am sugerat mai sus, adica schimba putintel ordinea operatiilor:
a) Cautare client / Identificare (OK);
b) Deschidere formular Comenzi (formularul de Cautare client, ramanand deschis);
c) Copiere Nume/IdClient;
d) Inchidere formular cautare/identificare client.
(Adica, presupun ca TempsVars, se "incarca" doar daca are sursa deschisa).
LE: M-am inselat.Se pare ca poate fi stocata, chiar dac aformul din car ee preluata, e inchis.
TempVar1

SharQue99
Mesaje: 71
Membru din: Vin Noi 02, 2012 3:06 pm

Re: Convert VBA to Macro

Mesaj de SharQue99 » Mar Mai 03, 2016 5:47 pm

Eu am inteles ca trebuie asa :
- De identificat nu cred ca trebuie pentru ca el stie de cand dau dbclick ce rand trebuie identificat
- Form-ul "comenzi" este deja deschis. Din el deschid un alt form "cautare_client" deci ramane si el deschis.

Acum, cand dau Dblclick pe un anumit rand din lista de clienti sa ruleze urmatorul macro:
1) Copiez valoarea campului "id_client" ca si variabila temporara.
2) Inchid form-ul "cautare_client"
3) Ei aici ar trebui sa scriu comanda care sa seteze valoarea "id_client" din form-ul comenzi, aceeasi cu variabila temporara salvata mai sus. Am incercat cu SetProperty/value - Nu functioneaza, cu SetLocalVar - Nu functioneaza.
4) Inchid toate variabilele temporare.

Oare s-o putea face ce vreau eu ? Am descarcat toate template-urile web din acces si nu am vazut la niciuna sa se poata.

Tzica
Mesaje: 619
Membru din: Sâm Aug 11, 2012 10:52 pm

Re: Convert VBA to Macro

Mesaj de Tzica » Mar Mai 03, 2016 6:17 pm

er..eh..la "SetProperty.Value" e de inteles de ce nu functioneaza.:
SetPropertyValue

(acu' am citit si io ca "but in access web apps, macros are the only way. No VBA is possible")

Tzica
Mesaje: 619
Membru din: Sâm Aug 11, 2012 10:52 pm

Re: Convert VBA to Macro

Mesaj de Tzica » Mar Mai 03, 2016 8:27 pm

Iaca, am gasit o actiune/comanda macro, dar..e pentru MsA2013 (webapp), mai pe la sfarsitul articolului:
WebAppMsA2013

Se pare ca e nevoie si de implicarea eventului AfterUpdate.
(Am revenit pentru ca ai dreptate....se face cu SetProperty...cel putin asa e descris in articolul respectiv.In fine..ma retrag...se pare ca Macro-urile pentru webb app, au oarece subtilitati).
:oops:

SharQue99
Mesaje: 71
Membru din: Vin Noi 02, 2012 3:06 pm

Re: Convert VBA to Macro

Mesaj de SharQue99 » Joi Mai 05, 2016 10:38 am

Din ce vad eu, Macro e diferit de VBA-ul cu care eram cat de cat invatat.
Daca cu vba pot edita un alt form, cu macro nu pot edita decat informatiile din form-ul curent.
Acum, eu m-am gandit asa :
1) Setez printr-un Macro1 o Variabila Temporara cu valoarea pe care vreau sa o copiez din campul "id_client" al form-ului "cautare_client".
2) Inchid Form-ul "cautare_client".
3) Setez printr-un alt Macro2 ca noul camp "id_client" din form-ul "comenzi" sa ia valoarea Variabilei Temporare.
4) Inchid Variabila Temporara.

Acum, cand naiba sa rulez Macro2 pentru ca Web Database nu suporta decat "on current" sau " on load" ca si event-uri ale form-ului.
Am pus "on current" dar nu functioneaza decat atunci cand apas F5. Daca pun un "Refresh" sau "Requery" nu functioneaza.

Tzica
Mesaje: 619
Membru din: Sâm Aug 11, 2012 10:52 pm

Re: Convert VBA to Macro

Mesaj de Tzica » Joi Mai 05, 2016 10:40 pm

2010app

Dacă, am înțeles eu bine link-ul de mai sus, mai e nevoie de o variabila, inclusa intr-o alta comanda macro, care sa verifice formularul clienți,. (Procedura descrisă la adăugarea unui nou utilizator).

Tzica
Mesaje: 619
Membru din: Sâm Aug 11, 2012 10:52 pm

Re: Convert VBA to Macro

Mesaj de Tzica » Joi Mai 05, 2016 11:19 pm

Scuze ..corectez..."care sa verifice formularul clienți", sa verifice câmpul client din formularul comenzi (true sau false).

Scrie răspuns

Înapoi la “Intrebari despre Access 2010”