<<< Formun Kapatilmasini Önlemek >>>
formunuzun borderstyle özelligini 0 yapin
Private Sub Form_Load()
App.TaskVisible = False
End Sub
yazin artik çalisan programiniz hem görev yöneticisinde görünmeyecek,hem de baslikta kalkacak.
<<< Formun Taşınmasında En Kolay Yol >>>
Option Explicit
Private setX As Integer, setY As Integer 'Bunu Formun En Üst Kısmına Yazın...
'Buraya " lblTitleBar" Adında Bir Picturebox Yaratıyoruz Ve Formumuz Kolayca Heryare Tasınıyor....
Private Sub lblTitleBar_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
On Error Resume Next
setX = x
setY = y
End Sub
Private Sub lblTitleBar_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
On Error Resume Next
If Button = 1 Then
Me.Left = Me.Left + (x - setX)
Me.Top = Me.Top + (y - setY)
End If
End Sub
<<< SFlex Grid kontrolünde kutulara sığmayan yazılar... >>>
MSFlex Grid'e sığmayan yazıları tıkladığınızda bir tooltip şeklinde tam olarak görüntüleyebilirsiniz. Bunu için flexgrid'in selectionchange kısmında tooltipi textmatrix(rowsel,colsel) olarak ayarlayın. Gerçekten güzel gözüküyor ve yeniden boyutlandırmayla uğraşmamış oluyorsunuz.
<<< Visual basic te süzme işleminize yardımcı olacak bir komut >>>
örneğin rehber adlı bir tablonuz var bu tabloda müşterino larını göre süzme yapmanız gerekiyo ve bu işlemi text kutusuyla yapmak istiyosanız aşağıya bakın
dim t
t="'" & text1.text & "*'"
Data2.RecordSource = "select * from rehber where MusteriNo like " & t & ""
Data2.Refresh
<<< Bir kodun formdaki tüm textbox'larda kullanımı >>>
Örneğin formdaki TextBox'lara sadece sayısal değerler girdirmek istiyorsunuz.
Bunun için tüm TextBox'ların event'ına bu kodu yazmanız gerekir. Bundan kurtulmak için ClassModule devreye girerer.
ClassModule sayfasına;
Public WithEvents txt As MSForms.TextBox
Private Sub txt_Change()
If txt <> Empty Then
If IsNumeric(txt) = False Then
MsgBox ("Numeric Sayılar Kullanmalısınız!"): Exit Sub
End If
End If
End Sub
Bu şekilde TextBox'ın Change event'ına kodumuzu yazdık.
Module sayfasına;
Global txtler() As New Class1
Global kontrol As Control
Module sayfasına değişkenlerimizi tanımladık.
Private Sub Form_Initialize()
i = 1
For Each kontrol In Me.Controls
If TypeName(kontrol ) = "TextBox" Then
ReDim Preserve txtler(i)
Set txtler(i).txt = kontrol
i = i + 1
End If
Next
End Sub
Formun Initialize event'ına da yukarıdaki kodları yazdıktan sonra, formda kullanılan tüm textbox'lara sadece sayısal değerler girebiliriz.
Ayrıca her textbox'ın event'ına ayrı ayrı kod tanımlamaya gerek yoktur.
<<< Visual basic terimlerinin sayısal karşılığı >>>
1.1.1. Renk Sabitleri
Sabit Değer Açıklama
vbBlack &h00 Siyah
vbRed &hFF Kırmızı
vbGreen &hFF00 Yeşil
vbYellow &hFFFF Sarı
vbBlue &hFF0000 Mavi
vbMagenta &hFF00FF Gül Kurusu
vbCyan &hFFFF00 Turkuaz
vbWhite &hFFFFFF Beyaz
Tablo 2 : Renk Sabitleri.
1.1.2. Tarih ve Zaman Sabitleri
Sabit Değer Açıklama
vbSunday 1 Pazar
vbMonday 2 Pazartesi
vbTuesday 3 Salı
vbWednesday 4 Çarşamba
vbThursday 5 Perşembe
vbFriday 6 Cuma
vbSaturday 7 Cumartesi
vbUseSystem 0 Sunucunun bölgesel ayarlarında yer alan tarih veya zaman biçimini kullan
vbUseSystemDayOfWeek 0
vbFirstJan1 1 1 Ocak gününün içerisinde yer aldığı haftayı kullan
vbFirstFourDays 2 En az 4 günü yeni yılda olan ilk haftayı kullan
vbFirstFullWeek 3 7 günüde yeni yıl içersinde yer alan ilk haftayı kullan
Tablo 3 : Tarih ve Zaman Sabitleri.
1.1.3. Tarih Biçim Sabitleri
Sabit Değer Açıklama
vbGeneralDate 0 Sistem ayarlarındaki gösterim biçimi
vbLongDate 1 Uzun tarih gösterimi (June 26, 1943)
vbShortDate 2 Kısa tarih gösterimi (6/26/43)
vbLongTime 3 Uzun zaman gösterimi (3:48:01 Pm)
vbShortTime 4 Kısa zaman gösterimi (15:48)
Tablo 4 : Tarih Biçim Sabitleri.
1.1.4. Çeşitli Sabitler
Sabit Değer Açıklama
vbObjectError -2147221504 Kullanıcı tarafından tanımlanan hata tipi numaraları
Tablo 5 : Çeşitli Sabitler.
1.1.5. Mesaj Kutusu Sabitleri
Sabit Değer Açıklama
vbOkOnly 0 Sadece OK butonu göster
vbOkCancel 1 Ok ve İptal butonu göster
vbAbortRetryIgnore 2 Abort, Retry ve Ignore butonu göster
vbYesNoCancel 3 Yes, No ve Cancel butonu göster
vbYesNo 4 Yes ve No butonu göster
vbRetryCancel 5 Retry ve Cancel butonu göster
vbCritical 16 Kritik mesaj iconu göster
vbQuestion 32 Uyarı soru mesajı iconu göster
vbExclamation 48 Uyarı mesajı iconu göster
vbInformation 64 Bilgi mesajı iconu göster
vbDefaultButton1 0 Ilk buton varsayılan
vbDefaultButton2 256 Ikinci buton varsayılan
vbDefaultButton3 512 Üçüncü buton varsayılan
vbDefaultButton4 768 Dördüncü buton varsayılan
Tablo 6 : Mesaj Kutusu Sabitleri.
1.1.6. Mesaj Kutusu Cevap Sabitleri
Sabit Değer Açıklama
vbOk 1 Ok butonu tıklandı
vbCancel 2 Cancel butonu tıklandı
vbAbort 3 Abort butonu tıklandı
vbRetry 4 Retry butonu tıklandı
vbIgnore 5 Ignore butonu tıklandı
vbYes 6 Yes butonu tıklandı
vbNo 7 No butonu tıklandı
Tablo 7 : Mesaj Kutusu Cevap Sabitleri.
1.1.7. String Cevap Sabitleri
Sabit Değer Açıklama
vbCr Chr(13) -
vbCrLf Chr(13) & Chr(10) -
vbFormFeed Chr(12) Form Besleme
vbLf Chr(10) Satır Besleme
vbNewLine Chr(13) & Chr(10) veya Chr(10) Yeni Satır
vbNullChar Chr(0) 0 değerine sahip karakter
vbNullString - “”
vbTab Chr(9) Horizantal Tab
vbVerticalTab Chr(11) Vertical Tab
Tablo 8 : String Cevap Sabitleri.
1.1.8. Durum Sabitleri
Sabit Değer Açıklama
vbTrue -1 Doğru
vbFalse 0 Yanlış
Tablo 9 : Durum Sabitleri.
1.1.9. Karşılaştırma Sabitleri
Sabit Değer Açıklama
VbBinaryCompare 0 Binary Karşılaştırma
VBTextCompare 1 Metin Karşılaştırma
VBDataBaseCompare 2 Veri Tabanı Karşılaştırması
Tablo 10 : Karşılaştırma Sabitleri.
1.1.10. Değişken Tipi Sabitleri
Sabit Değer Açıklama
vbEmpty 0 Tanımsız data
vbNull 1 Geçerli data içermeyen
vbInteger 2 Integer
vbLong 3 Long
vbSingle 4 Single
vbCurrency 6 Currency
vbDate 7 Date
vbString 8 String
vbObject 9 Object
vbError 10 Error
vbBoolean 11 Boolean
vbVariant 12 Variant
vbDataObject 13 Data object
vbDecimal 14 Decimal
vbByte 15 Byte
vbArray 16 Array
Tablo 11 : Değişken Tipi Sabitleri.
1.1.11. Sürücü Tipi Sabitleri
Sabit Değer Açıklama
Unknown 0 Tanımlanmamış sürücü
Removable 1 Tüm taşınabilir medya aygıtları. Içerisinde disket sürücüleri de vardır
Fixed 2 Sabit diskler
Remote 3 Network sürücüleri
CDROM 4 CdRom sürücüsü
RamDisk 5 RAM üzerinde yer alan sanal disk alanı
Tablo 12 : Sürücü Tipi Sabitleri.
1.1.12. Dosya Özelliği Sabitleri
Sabit Değer Açıklama
Normal 0 Normal dosya
ReadOnly 1 Salt okunur
Hidden 2 Gizli
System 4 Sistem dosyası
Directory 16 Dizin
Archive 32 Arşiv
Alias 1024 Link veya kısayol
Compressed 2048 Sıkıştırılmış dosya
Tablo 13 : Dosya Özelliği Sabitleri.
1.1.13. Dosya Girdi Çıktı Sabitleri
Sabit Değer Açıklama
ForReading 0 Dosyayı sadece okuma için aç. Bu tip açılan dosyaya yazılamaz.
ForWriting 1 Dosyayı yazma için aç. Eğer bu dosya daha önceden varsa üzerine yazar.
ForAppending 8 Dosyayı yazmak için açar ve sonuna yazar
Tablo 14 : Dosya Girdi Çıktı Sabitleri.
1.1.14. Özel Dizin Sabitleri
Sabit Değer Açıklama
WindowsFolder 0 Windowsun kurulu olduğu dizin
SystemFolder 1 Fontların ve sürücülerin bulunduğu sistem dizini
TemporaryFolder 2 Temprorary dizini
Tablo 15 : Özel Dizin Sabitleri.
1.2. Operatörler
Değişkenlerimiz arasında işlemler yaptırabiliriz. Bu işlemler için operatör dediğimiz işaretleri kullanırız. Bu operatörler bildiğiniz matematiksel operatörlerdir.
Aritmetik Karşılaştırma Lojik
Açıklama Sembol Açıklama Sembol Açıklama Sembol
Üst Alma ^ Eşitlik = Lojik Zıtlık Not
Çıkarma - Eşitsizlik <> Lojik ve And
Çarpma * Küçüktür < Lojik veya Or
Bölme / Büyüktür > Lojik özel veya Xor
Integer Bölme \ Küçük Eşittir <= Lojik eşdeğer Eqv
Modüler Mod Büyük Eşittir >= Lojik içerme Imp
Toplama + Obje Eşdeğeri Is
Metinsel Birleştirme &
Tablo 16 : Operatörler.
<<< Ado ile filtreleme işlemi >>>
ado ile yapılacak bir listeleme veya arama işlemi için gereken kısa işlem açıklaması burada
örneğin bir stok kartında bugüne ait cari hesapları görmek istiyorsanız şu kodu yazmak en akıllıcası sql ile ado çakışmalarını önler
ado ile yapılmıştır
1-
adodc1.recordset.filter="cari_tarih='" & cdate(date) & " ' "
{listeleme alanı örneğin
list1.additem adodc1.recordset.fields("cari_adi").value & ""
NOT:Eğer Sadece İlk Kayıdı Görüyorsanız Şu İşlemi Yapmanız Yeterli Olacaktır
2-
prublic sub bastan_sona()
do
doevents
adodc1.recordset.filter="cari_tarih=' " & cdate(date) & " ' "
{listeleme alanı örneğin
list1.additem adodc1.recordset.fields("cari_adi").value & ""
adodc1.recordset.movenext
loop until adodc1.recordset.eof
adodc1.recordset.movefirst
end sub
//Her ikiside geçerlidir
Fakat Yüzlerce Kaydınız var size 1 metindeki kodu önereceğim