Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

Pobranie tytułu formularza mając nazwę formularza dostępną w zmiennej



 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Bazy danych
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Andrzej_55



Dołączył: 19 Lut 2016
Posty: 13

PostWysłany: Pon Gru 04, 2017 8:09 am  OP    Temat postu: Pobranie tytułu formularza mając nazwę formularza dostępną w zmiennej Odpowiedz z cytatem Pisownia

Witam
potrzebuję wykonać procedurę serwisową która do załaduje do tabeli nazwy formularzy oraz tytuły tych formularzy (Forms.caption).
Wykonałem pętlę po tabeli systemowej MySysObject z warunkiem Type=-32768 i nie ma problemu z pobraniem nazw formularzy do tablicy i dalej do tabeli.
Problem mam z wymyśleniem metody i kodu który pobierze tytuły z tych formularzy.
Utworzyłem dodatkową pętlę w której otwieram i zamykam po kolei formularze w trybie do projektowania aby nie uruchomiały się zdarzenia: przy otwarciu i przy załadowaniu.
Pomiędzy otwarciem i zamknięciem każdego formularza muszę wprowadzić pobieranie tytułu formularza do zmiennej i dalej do tabeli.

Tylko jak to wykonać czyli jak utworzyć potrzebny kod analogiczny do poniższego:
Tytuł = Forms![nazwa formsa].caption
W ww. linii kodu nazwa formsa jest zapisana wprost a ja w pętli mam udostępnioną nazwę w zmiennej tekstowej no i zatrzymałem się :)

Andrzej
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
mrowek



Dołączył: 28 Maj 2005
Posty: 310
Skąd: pniewy wlkp

PostWysłany: Pon Gru 04, 2017 9:46 am      Temat postu: Odpowiedz z cytatem Pisownia

forms jest kolekcja otwartych formularzy i mozna odniesc sie do jego pozycji za pomoca indexu 1 2 3 albo wg nazwy obiektu,

wystarczy przerobic linijke do analogicznego kodu i da rade odwolac sie do jego modelu

przyklad (okienko immediate)

Kod:

? forms("start").Caption
start

a = "start"
? a
start
? forms(a).Caption
start




moze cie jeszcze zainteresowac kolekcja currentproject.allforms
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Numer GG
Andrzej_55



Dołączył: 19 Lut 2016
Posty: 13

PostWysłany: Pon Gru 04, 2017 10:40 am  OP    Temat postu: Odpowiedz z cytatem Pisownia

Wielkie dzięki za przypomnienie o kolekcjach.
Wprowadziłem zmianę w kodzie, problem mam rozwiązany.

Andrzej
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
karolinavb
Site Admin


Dołączył: 25 Maj 2005
Posty: 7851

PostWysłany: Pon Gru 04, 2017 8:24 pm      Temat postu: Odpowiedz z cytatem Pisownia

Cytat:
Wykonałem pętlę po tabeli systemowej MySysObject z warunkiem Type=-32768
A nie wystarczy przejrzeć kolekcję AllForms obiektu CurrentProject?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Andrzej_55



Dołączył: 19 Lut 2016
Posty: 13

PostWysłany: Wto Gru 05, 2017 12:02 am  OP    Temat postu: Odpowiedz z cytatem Pisownia

Karolina, wydaje mi się, że jest to wybór pomiędzy pętlą po tabeli a pętlą po kolekcji.
(Liczę i oczekuję na Twój dodatkowy, błyskotliwy komentarz).

Napisałem taki kod:
Kod:
Sub AllForms02()
Dim obj As AccessObject
  For Each obj In Application.CurrentProject.AllForms
   Debug.Print obj.Name
  Next obj
End Sub
Dodałem znaczniki kodu. Zobacz: znaczniki formatujące - jak stosować.- Samolot

W zakresie wydłubania nazw formularzy działa równoważnie do rozwiązania z tabelą systemową. Sam zapis wydaje się być jednak bardziej elegancki i czytelniejszy od selecta po tabeli.
W moim przypadku istotą było pobranie tytułów formularzy, stąd ich ukryte otwieranie w widoku projektu i zamykanie (w dodatkowej pętli). Pobranie 70 tytułów formularzy wykonuje się w około 2-3 sekundy.

Andrzej
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
karolinavb
Site Admin


Dołączył: 25 Maj 2005
Posty: 7851

PostWysłany: Pią Gru 15, 2017 9:23 pm      Temat postu: Odpowiedz z cytatem Pisownia

Cytat:
W zakresie wydłubania nazw formularzy działa równoważnie do rozwiązania z tabelą systemową
Tyle tylko, że raczej nie lubię "tykać" tabel systemowych jeśli nie muszę...
Oraz ciekawi mnie po co Ci, że tak powiem to "Caption" ?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Bazy danych Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.33603 sekund, zapytan = 11
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |