textbox formatı

Katılım
20 Ekim 2005
Mesajlar
467
ado ile kapalı dosyadan veri transferi yapıyorum. ama userform üzerinde textboxta (15.09.2006) tarih olarak görünmesi gereken veri 9/15/06 tarih formatında gözüküyor. Textbox1'e yazdığım

Private Sub Textbox1_change ()
Textbox1= Format (Textbox1.value, "dd.mm.yyyy")
Exit sub

kodla textbox1'i değiştirmek gerektiğinde mesela 20.06.2006 tarihi girmem gerekirken 2'e bastığımda tarihi 02.01.1900 olarak kendiliğinden atanıyor. Birde

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.Value = Format(TextBox1, "dd.mm.yyyy")
End Sub

kodları ile 9/15/2006 formatı aynen kalıyor. Textbox'ın üzerinden enter tuşu ile geçildiğinde tarih formatı düzeliyor ama kaydı düzeltmem gerekiyor oda sayfayı kaydettiğimden veriler çok olunca bayağı zaman alıyor. bu konuda acil çözüme intiyacım var. yardımcı olacaklara şimdiden teşekkür ederim
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,614
Excel Vers. ve Dili
Pro Plus 2021
Kapalı dosyadan textbox1 e verileri alırken formatlı bir biçimde alın, sorununuz, kalmaz.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,323
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Aşağıdaki gibi, veri aktarımı sırasında ....

Kod:
  TextBox1 = format(RS("Tarih"), "dd.mm.yyyy")
 
Katılım
20 Ekim 2005
Mesajlar
467
Haluk' Alıntı:
Aşağıdaki gibi, veri aktarımı sırasında ....

Kod:
  TextBox1 = format(RS("Tarih"), "dd.mm.yyyy")
bu düzelte için
ilk sorumda bahsettiğim gibi ado ile c nin içinden demirbaş klasörünün içinde bulunan demirbaş v1.1 .xls den verileri alıyorim. demirbaş v1.1 .xls dosyasının aşağıdaki Haluk üstadımın kodlarında nasıl bir düseltme yapılarak sayfa 1 deki e sütunundaki tarihleri tarih formatına (20.01.2006) formatlı bir biçimde açık dosyaya aktarabiliriz.


Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
'
Const WS_SYSMENU = &H80000
Const GWL_STYLE = (-16)
Const SourceFile As String = "C:\Demirbaş\Demirbaş v1.1.xls"
Const SourceSheet As String = "Sayfa1"
Const SourceRange As String = "A1:L1200"
'
Private Sub CommandButton1_Click()
Call GetDataFromClosedWorkbook(SourceFile, SourceRange)
End Sub
'
Private Sub GetDataFromClosedWorkbook(SourceFile As String, SourceRange As String)
Dim dbConnection As Object, Rs As Object
Dim dbConnectionString As String
Set dbConnection = CreateObject("ADODB.Connection")

dbConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=" & SourceFile & ";" _
& "Extended Properties=""Excel 8.0;HDR=No"""
On Error GoTo InvalidInput
dbConnection.Open dbConnectionString
Set Rs = dbConnection.Execute("[" & SourceSheet & "$" & SourceRange & "]")
ListBox1.ColumnCount = Rs.Fields.Count
ListBox1.ColumnWidths = 26 & ";" & 35 & ";" & 120 & ";" & 20 & ";" & 50 & ";" & 50 & ";" & 25 & ";" & 40 & ";" & 120
ListBox1.Column = Rs.GetRows(Rs.RecordCount)
Rs.Close
dbConnection.Close
Set Rs = Nothing
Set dbConnection = Nothing
On Error GoTo 0
Exit Sub
InvalidInput:
MsgBox "Kaynak dosya veya alanda hata var!", vbExclamation, "( A ) Demirbaş Güncelleme"
End Sub
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,323
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
airborne, dosyanızdaki bir kod ile LitBox sütuna istediğiniz biçimde tarihsel verileri alamazsınız. Çünkü ADO ile "copyfromrecordset" metodunu kullandığımız zaman, "recordset" olduğu gibi alınır.

Ama, yukarıdaki mesajımda verdiğim örnekteki gibi bir kodla verileri "recordset" ten alırsanız, o zaman olur.

İki yöntemin arasındaki fark nedir, derseniz...... birinci yöntem daha hızlıdır. Şiddetle tavsiye ederim.

Benim fikrimi sorarsanız, dosyanızı aynen bu şekliyle kullanın. Sadece fark, tarihsel verilerinizde "gg.aa.yyyy" yerine, "aa.gg.yyyy" biçiminde olacaktır. Kullandıkça, buna da alışırsınız.
 
Üst