Skip to main content

AccessTr.neT


Formda Uyarlama Eksikliği

access acemisi
access acemisi
4
1619

Formda Uyarlama Eksikliği

Çözüldü #1
Değerli arkadaşlar
frm_personelbilgiformu nu ,frm_secenek formu için uyarlamaya çalıştım. secenek sorgusuna göre frm_secenek formu oluşturdum.form satır kaynağını secenek sorgusundan alacak şekilde ayarlamaya çalıştım.
Formu açtığımda  rakamsal değer girmem gerekiyor.Örneğimde  Değeri 1 veya 4 olanlar, vcard gönderisi olarak çalışıyor. Ama 2 ve 3 girildiğinde çalışmıyor. Nerede bir eksiklik var yardımcı olursanız sevinirim.Saygılar
.rar secenekformu.rar (Dosya Boyutu: 63,53 KB | İndirme Sayısı: 3)
Cevapla
#2
(24/09/2018, 12:02)access acemisi yazdı: Değerli arkadaşlar
frm_personelbilgiformu nu ,frm_secenek formu için uyarlamaya çalıştım. secenek sorgusuna göre frm_secenek formu oluşturdum.form satır kaynağını secenek sorgusundan alacak şekilde ayarlamaya çalıştım.
Formu açtığımda  rakamsal değer girmem gerekiyor.Örneğimde  Değeri 1 veya 4 olanlar, vcard gönderisi olarak çalışıyor. Ama 2 ve 3 girildiğinde çalışmıyor. Nerede bir eksiklik var yardımcı olursanız sevinirim.Saygılar

personelbilgiformu'nda "kisi_id"ye göre geliyor, frm_seçenek formunda seçenek kısmında aynı numaraya sahip kayıtlar var. Sorun bundan kaynaklanıyor olabilir. Mükerrer kayıt oluşmasını engellerseniz sorgunuz çalışıyor...
Cevapla
#3
şöyle bir ikaz veriyor
[Resim: do.php?imgf=153784912948311.png]

[Resim: do.php?imgf=153784918422082.png]
il alanına rakamsal değerler girince düzeldi.Şimdilik denemelerim devam ediyor.Teşekkürler
Değerli arkadaşlar
Her iki form üzerinde deneme çalışmalarımı sürdürdüm.
Amacım seçenek alanında örneğin 1 numarayı temsil eden arkadaşlarımın Vcard hazırlamasını istedim …tbl_kisiler tablosunda 100 kişinin olduğunu varsayalım. Bunlar içerisinde arkadaşlar olarak , id sırasına göre 5 -73 ve 94 nolu 3 kişinin arkadaşlar seçeneğinde bulunduğunu yine varsayalım. Sürekli yaptığım denemeler sonrasında, her iki formda ,Vcard hazırlığı için, her iki formda da , tablodaki tüm kişileri taradığını anladım. Zira formun en altında  mavi alanda aktarılan kişileri görebiliyorum ve buda yaklaşık 10-15 dakika kadar sürüyor..5 nolu kişiyi aktardıktan sonra 73. Kişiyi buluncaya kadar 5 nolu kişinin ismi daima sürekli formda beliriyor..Bu da zaman alıyor..Bir ara form çalışmıyor galiba zannına vardım.
     Bir de şöyle denedim…. tbl_kisiler alnında, seçenek alanında 1 rakamının haricindeki diğer kişilerin kayıtları sildim ve  formda ilgili butona (Vcard)  tıklayınca ,5-10 sn ' de 3 kişinin kaydını hemen hazırladı…
Sayın üstadlarımdan şunu talep ediyorum …Ben seçenekte bulunan değerlere göre ,Vcard süzme yapsın.Bu süzmeye göre, zaman geçirmeden ilgili kayıtları hazırlasın…Aslında frm_secenek diye 2. Bir formu da bu amaçla hazırlamıştım.Sorgudan direk alır diye.
     Sorunun iyi anlaşılabilmesi için böyle uzun bir açıklama yapma ihtiyacı hissettim…Yardımızı bekliyorum Saygılar
Cevapla
#4
(25/09/2018, 07:20)access acemisi yazdı: il alanına rakamsal değerler girince düzeldi.Şimdilik denemelerim devam ediyor.Teşekkürler

Bu mevzu ile ilgili ilk sorunuzda "Dlookup komutunu inceleyiniz" dediğimi hatırlıyorum. 


objStream.WriteText "CATEGORIES:" & Dlookup ("id_il", "il", "[id_il]= " & rst!sehir) & vbCrLf

kodunu aşağıdaki gibi değiştirmeniz gerekli ki, tablodaki sehir alanında veri yok ise yerine 0 yazdırsın.


objStream.WriteText "CATEGORIES:" & Dlookup ("id_il", "il", "[id_il]= " & Nz(rst!sehir, 0)) & vbCrLf


Butonun tıklandığında olayındaki kodu aşağıdaki ile değiştirerek deneyiniz. Sadece secenek olarak belirlediğiniz kayıtları sorgulayacaktır.

Dim objStream
Dim VcardAdi, FileName, File, encode As String
Dim rst As DAO.Recordset
Dim image_bin() As Byte
Dim GSayi As Integer
VcardAdi = Format(Date, "ddmmyyyy") & "TumKayitlar.vcf"
FileName = CurrentProject.path & "\" & VcardAdi


Set objStream = CreateObject("ADODB.Stream")
objStream.Charset = "utf-8"
objStream.Open

GSorgum = "SELECT tbl_kisiler.secenek, * FROM tbl_kisiler WHERE (((tbl_kisiler.secenek)='" & Me.secenek & "'));"

Set rst = CurrentDb.OpenRecordset(GSorgum)
rst.MoveFirst

Me.etk_ilerle.Visible = True

GSayi = 0

Do Until rst.EOF

   objStream.WriteText "BEGIN:VCARD" & vbCrLf
   objStream.WriteText "VERSION:4.0" & vbCrLf
   objStream.WriteText "N:" & rst!soyadi & ";" & rst!adisoyadi & ";" & rst!ikinciadi & ";" & rst!unvani & vbCrLf
   objStream.WriteText "FN:" & rst!adisoyadi & " " & rst!soyadi & vbCrLf
   objStream.WriteText "ORG:" & rst!sirketbilgisi & vbCrLf
   objStream.WriteText "TITLE:" & rst!isunvani & vbCrLf
   File = CurrentProject.path & "\resimler\" & rst!fotograf
   If FileExists(File) = True Then
   Open File For Binary Access Read As #1
   ReDim image_bin(LOF(1) - 1)
   Get #1, , image_bin
   Close #1
   encode = Replace(EncodeBase64(image_bin), vbLf, vbCrLf & Space(1))
   objStream.WriteText "PHOTO;TYPE=JPEG;ENCODING=B:" & encode & vbCrLf
   End If
   objStream.WriteText "TEL;WORK;VOICE:" & rst!istelefonu & vbCrLf
   objStream.WriteText "TEL;HOME;VOICE:" & rst!evtelefonu & vbCrLf
   objStream.WriteText "TEL;CELL;VOICE:" & rst!ceptelefonu & vbCrLf
   objStream.WriteText "ADR;WORK:" & rst!isadresi & ";" & rst!issehir & ";" & rst!ispostakodu & ";" & rst!isulke & vbCrLf
   objStream.WriteText "ADR;HOME:" & rst!evadresi & ";" & rst!sehir & ";" & rst!evpostakodu & ";" & rst!evulke & vbCrLf
   objStream.WriteText "CATEGORIES:" & Dlookup ("id_il", "il", "[id_il]= " & Nz(rst!sehir, 0)) & vbCrLf
   objStream.WriteText "X-MS-OL-DEFAULT-POSTAL-ADDRESS:1" & vbCrLf
   objStream.WriteText "EMAIL;PREF;INTERNET:" & rst!epostaadresi & vbCrLf
   objStream.WriteText "URL;WORK:" & rst!websayfasi & vbCrLf
   objStream.WriteText "NOTE:" & rst!Notlar & vbCrLf
   objStream.WriteText "BDAY:" & Format(rst!dogumtarihi, "yyyy-mm-dd") & vbCrLf
   objStream.WriteText "REV:" & Format(Date, "yyyymmdd") & "T" & Format(Now(), "hhnnss") & "Z" & vbCrLf
   objStream.WriteText "CATEGORIES:" & Dlookup ("grupadi", "grup", "[id_grup]= " & Nz(rst!secenek, 0)) & vbCrLf
   objStream.WriteText "END:VCARD" & vbCrLf
   Me.etk_ilerle.Caption = rst!adisoyadi & " " & rst!soyadi
   GSayi = GSayi + 1
   
   rst.MoveNext
Loop
Me.etk_ilerle.Visible = False
objStream.SaveToFile FileName, 2

Me.etk_ilerle.Visible = False

MsgBox (GSayi & " adet veri " & VcardAdi & " isimli dosyaya kaydedildi")
rst.Close
objStream.Close
Cevapla
#5
Çok teşekkür ederim ederim Sn ozanakkaya
(26/09/2018, 22:40)ozanakkaya yazdı: Bu mevzu ile ilgili ilk sorunuzda "Dlookup komutunu inceleyiniz" dediğimi hatırlıyorum.
   Konuları birden kavrayamıyoruz.Kusura bakmayın.. Denemelere devam ettiğimiz sürece sizlerden çok şey öğreneceğiz. 
Tam istediğim gibi olmuş  Sağolasınız
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da