AccessTr.neT

Tam Versiyon: Access VBA ile Tarih Formatı Değiştirmek
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Merhaba arkadaşlar, 

sistemim ms Sql ile bağlı tablolar aracılığı ile çalışıyor. Sql üzerinde tarih formatını değişrmeyi beceremedim. Bu sebeple formlar üzerindeki dd.mm.yyyy şeklinde olan tarih formatını Sql in istediği yyyy-mm-dd formatına çevirmek istedim. Bunun için bütün formlarda iki tarih alanı oluşturdum ve aşağıdaki resimde de görebileceğiniz gibi yaptım. 

[Resim: do.php?img=5295]

Yalnız gerin görün ki aynı işlemi "pbif" adlı formda uyguladığım zaman "Type Mismatch" hatası alıyorum. Kodlamalar birebir aynı. Sorunun Sql üzerindeki tabloların data tipiden olacağını düşündüm. Fakat data tiplerini date olarakta yapsam veya nvchar olarak da yapsam hep aynı hatayı aldım. Diğer tablolar bütün datat tiplrinde çalıştı birtek bu çalışamadı. Yardımlarınızı bekliyorum. Teşekkürler.

[Resim: do.php?img=5296]

T
Sorunlu olan formun kayıt kaynağındaki tabloda tarih alanları Tarih/Saat olarak belirlenmiş. Bunları Metin olarak değiştirirsen düzelir.

Ayrıca, nesne isimleri Access yerleşik ifadeler ile aynı olmamalı. format adında metin kutusu eklemişsin. Bunun adını mtn_format vs. şeklinde değiştir.
Çok sağolun hocam, saatlerce denedim format isminden kaynaklanacağını hiç düşünmemiştim. Çok teşekkürler.
Aslında bazı modüllerdeki acıklamaları görünce incelemeyi bırakmıştım.
ek olarak format değiştirme olayında bölüm bölüm alarakta yapabillirsiniz. Örneğin:

2015-11-26 tarihini

me.metinkutusu = mid(tarih,9,2) & "." & mid(tarih,6,2) & "." &  mid(tarih,1,4)  yazdığınızda = 26.11.2015  verecektir.

mid(tarih,9,2) yazan yerdeki tarih olayına metin kutusu veya değişken atayabilirsiniz.

mid(me.metinkutusuadi,9,2) tarzında.
----------------------------------------------

ayrıca bu durumu left, right ve mid 3 ünü kullanarakta yapabilirsiniz. 

2015-11-26 tarihini


me.metinkutusu = left(tarih,4) & "." & mid(tarih,6,2) & "." &  right(tarih,2)  yazdığınızda = 26.11.2015  verecektir.
ayrıca şunuda belirteyim. deminki şekilde üst üste uğraşmak istemiyorsanız. convert fonksiyonunu da kullanabilirsiniz.

vba bölümüne

me.tariholanmetinkutusu = cdate(me.tarih) bu durum sorguda ve formdada gerçekleşiyor.

aslında bir çok yol ve yöntem var :S

şu tarih olayını bir türlü stabilduruma getirmediler. MsSql'de