AccessTr.neT

Tam Versiyon: Formda Uyarlama Eksikliği
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
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
(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...
şö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
(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
Ç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