Skip to main content

AccessTr.neT


Form ve Raporlardaki tüm kontrollere kod ile müdahele edilebilir mi ?

Form ve Raporlardaki tüm kontrollere kod ile müdahele edilebilir mi ?

Çözüldü #1
Merhaba,

elimizdeki veritabanında form ve raporlardaki tüm metin kutularının ve etiketlerin değerini değiştirebilir miyiz ?

bunu başka bir formdan komut ile başlatmalı ve kod sırayla tüm rapor ve formları açmalı ve adı istediğimiz değerle başlayan nenselerin değerini vereceğimizle değiştirmeli ve onları kapatmalı.

Mesela form ve raporlarda bir etiketin adı lbl_Kurum ise biz de diyelim lbl_Kurum ile başlayan tüm etiket ve metin kutularının değerini değiştirebilelim.

Yani bir yönetici özelliği sayesinde toplu değişiklik yapmak.

Bende farklı oalrak tüm form ve raporlar girip onların araç çubuğu özelliklerini değiştiren bir kod var.
Kod:
Public Sub SetReportToolbars()
Dim objRpt As AccessObject, rpt As Report
    ' Go through every report in the database
    For Each objRpt In CurrentProject.AllReports
        ' If a main report but not a sample "plain" report, then...
        If (Left(objRpt.Name, 3) = "rpr") And (Right(objRpt.Name, 5) <> "Plain") Then
            ' Open the report in design view
            DoCmd.OpenReport ReportName:=objRpt.Name, View:=acDesign
            ' Set a pointer to the report we just opened
            Set rpt = Reports(objRpt.Name)
            ' Clear any saved filter
            rpt.Filter = ""
            ' Set the custom menu bar
            rpt.MenuBar = "RaporYazdirMenu"
            ' Set the custom tool bar
            rpt.Toolbar = "RaporToolbox"
            ' Set the custom shortcut menu bar
            rpt.ShortcutMenuBar = ""
            ' Save the result
            DoCmd.Save
            ' Close the report
            DoCmd.Close acReport, objRpt.Name
        End If
    ' Get the next report
    Next objRpt
    ' Clean up
    Set objRpt = Nothing
    Set rpt = Nothing
End Sub

Teşekkürler.
Cevapla
Çözüldü #2
Sayın mehmeser
Ben tam olarak anlayamadığımdan soruyorum, siz soru mu sordunuz yoksa örnek bilgi mi verdiniz?. Eğer soru sorduysanız sanırım sorunuzun çözümüyle ilgili bir de fikir vermesi için kod yayınladınız.

Doğru mu?
İnadına, ille de Accesstr.net...
Cevapla
Çözüldü #3
Evet aslında her sorduğumda bir parça bilgi oluyor farkında olmadan. Bazen sorarken bir bildiğimi söyleyip farklı bir açıdan yorumunu istiyorum.

Verdiğim kodu aktif olarak kullanıyorum ve sorunsuz. Benim istediğim ise bu kodla aynı mantıkla rapor ve formların bir özelliğini değil de içindeki nesnelerin metin değerlerini değiştirmek bir karar yapısıyla. Hani For each gibisinden toplu işlemler yapılabiliyor nesneler üzerinde.

Evet, örnek kod verdim, başka bir yöntem arıyorum.
Cevapla
Çözüldü #4
Verdiğiniz biraz bilgiyi kullanayım ben o zaman müsadenizle.
Bu kod belirli bir ada sahip raporu tarayıp buluyor. Ve bunu bir değişkene atıyor

Kod:
set rpt = Reports(objRpt.Name)
Tam bu noktada girersem ben bilgiye sanırım çözümü yakalarım.
Yukarıda bi tane control tanımlarım.
Kod:
Dim c as control
For each c in rpt
  if c.controltype= aclabel then c.caption="Egemen"
next

Bu tüm etiketlerin caption değerini egemen yapar.
Ama burada sizin de farkettiğiniz gibi bir sorun var. Caption değerine atanacak bilgi nereden gelecek? control'un adı ve caption değeri ( sanırım dil destekli bir numara peşindeyiz) farklı dillerde bir tabloda tutulursa burdan çekilebilir.

İlginç bir soru aslında. Üstüne çalışılabilir.

Controller üzerinde daha geniş kod örnekleri için daha önce attığım animasyon örneklerine bakabilirsiniz... Oralarda formu'da parametre olarak alıp üstünde işlemler yaptırmıştım...

Not: Yukarıdaki kodları sadece buraya yazdım. Access üzerinde denemesini yapmadım. Bir örnek gönderirseniz üzerinde de çalışırız
Bana işe yarayan bir müdür göster,sana dünyayı yerinden oynatayım.
                                                                                        Descartes


Cevapla
Çözüldü #5
Yapılacak işlemde hem dediğiniz gibi dil değişebilir hem de bir uygulamada sonradan toplu metin işleme programlarında olduğu gibi komple değişimler yapılabilir.

Aslında bu geliştirilen uygulama için yönetim panelinde olacak. form ve raporlara üst ve alt bilgilerine müdahele için düşünüldü.

Aslında zaten bu olay formun kirlide olayında tüm düğmeleri pasif yapmak için kullanılıyor. eğer kirliyse tüm düğmeleri gizle değilse hepsini aç. Örnek alison Balter'in kitabında var.

Zamanım olmadığından uğraşamadım. Aslında yukardaki kodu değiştirmek yetecek gibi.

Sağlıcakla.
Cevapla
Çözüldü #6
Yani? Çözümü aldık mı?
Bana işe yarayan bir müdür göster,sana dünyayı yerinden oynatayım.
                                                                                        Descartes


Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task