001.
002.
003.
004.
005.
006.
007.
008.
009.
010.
Dim
cmdBuilder
As
OleDbCommandBuilder
011.
012.
Dim
dtTable
As
DataTable
013.
Dim
objCurrencyMgr
As
CurrencyManager
014.
Dim
currRecPos
As
Integer
015.
016.
Dim
addNewMode, editmode, savemode
As
Boolean
017.
Dim
fdName
As
String
018.
019.
020.
Private
Sub
frmMain_Load(
ByVal
sender
As
System.
Object
, _
021.
ByVal
e
As
System.EventArgs)
Handles
MyBase
.Load
022.
023.
dtAdapter.Fill(dtSet,
"contacts"
)
024.
dtTable = dtSet.Tables(
"contacts"
)
025.
026.
cmdBuilder =
New
OleDbCommandBuilder(dtAdapter)
027.
EnabledReadWrite()
028.
objCurrencyMgr =
CType
(
Me
.BindingContext(dtSet,
"contacts"
), CurrencyManager)
029.
txtFName.DataBindings.Add(
"Text"
, dtSet,
"contacts.Name"
)
030.
txtLName.DataBindings.Add(
New
Binding(
"Text"
, dtSet,
"contacts.Surname"
))
031.
txtAddr1.DataBindings.Add(
New
Binding(
"Text"
, dtSet,
"contacts.Add1"
))
032.
txtAddr2.DataBindings.Add(
New
Binding(
"Text"
, dtSet,
"contacts.Add2"
))
033.
txtDist.DataBindings.Add(
New
Binding(
"Text"
, dtSet,
"contacts.District"
))
034.
txtCity.DataBindings.Add(
New
Binding(
"Text"
, dtSet,
"contacts.Province"
))
035.
txtPosCode.DataBindings.Add(
New
Binding(
"Text"
, dtSet,
"contacts.Postcal"
))
036.
txtPhone.DataBindings.Add(
New
Binding(
"Text"
, dtSet,
"contacts.Tel"
))
037.
txtFax.DataBindings.Add(
New
Binding(
"Text"
, dtSet,
"contacts.fax"
))
038.
txtmobile1.DataBindings.Add(
New
Binding(
"Text"
, dtSet,
"contacts.mobile1"
))
039.
txtmobile2.DataBindings.Add(
New
Binding(
"Text"
, dtSet,
"contacts.mobile2"
))
040.
txtoffice_tel.DataBindings.Add(
New
Binding(
"Text"
, dtSet,
"contacts.Office_Tel"
))
041.
TxtRef.DataBindings.Add(
New
Binding(
"Text"
, dtSet,
"contacts.refer"
))
042.
txtEmail.DataBindings.Add(
New
Binding(
"Text"
, dtSet,
"contacts.email"
))
043.
txttittle.DataBindings.Add(
New
Binding(
"Text"
, dtSet,
"contacts.Tittle"
))
044.
TxtNickname.DataBindings.Add(
New
Binding(
"Text"
, dtSet,
"contacts.Nickname"
))
045.
SexStatusShow(sender, e)
046.
Dim
datecolumn
As
New
DataColumn(
"contacts.Birthdate"
)
047.
datecolumn.AllowDBNull =
True
048.
datecolumn.DataType =
GetType
(System.DateTime)
049.
BDatePicker1.DataBindings.Add(
New
Binding(
"value"
, dtSet,
"contacts.Birthdate"
))
050.
051.
AdjustPosition(sender, e)
052.
053.
AddHandler
objCurrencyMgr.PositionChanged,
AddressOf
AdjustPosition
054.
055.
AddHandler
btnDelete.Click,
AddressOf
AdjustPosition
056.
057.
AddHandler
btnCancel.Click,
AddressOf
AdjustPosition
058.
059.
AddHandler
btnFind.Click,
AddressOf
AdjustPosition
060.
061.
AddHandler
btnFilter.Click,
AddressOf
AdjustPosition
062.
DisabledReadWrite()
063.
End
Sub
064.
Private
Sub
DTformatter(
ByVal
sender
As
System.
Object
,
ByVal
e
As
ConvertEventArgs)
065.
Dim
b
As
Binding =
CType
(sender, Binding)
066.
If
Not
e.DesiredType
Is
GetType
(DateTime)
Then
067.
Return
068.
End
If
069.
If
e.Value.
GetType
Is
GetType
(System.DBNull)
Then
070.
e.Value =
CType
(
"1/1/1800"
, System.DateTime)
071.
End
If
072.
End
Sub
073.
Private
Sub
DTParser(
ByVal
sender
As
System.
Object
,
ByVal
e
As
ConvertEventArgs)
074.
If
Not
e.DesiredType
Is
GetType
(DateTime)
Then
075.
Return
076.
End
If
077.
If
Not
e.Value.
GetType
Is
GetType
(DateTime)
Then
078.
Return
079.
End
If
080.
Dim
value
As
String
=
CType
(e.Value,
String
)
081.
If
value.Equals(
"1/1/1800"
)
Then
082.
e.Value = System.DBNull.Value
083.
End
If
084.
End
Sub
085.
Public
Sub
objclearbind(
ByVal
sender
As
System.
Object
,
ByVal
e
As
System.EventArgs)
086.
txtFName.DataBindings.Clear()
087.
txtLName.DataBindings.Clear()
088.
txtAddr1.DataBindings.Clear()
089.
txtAddr2.DataBindings.Clear()
090.
txtDist.DataBindings.Clear()
091.
txtCity.DataBindings.Clear()
092.
txtPosCode.DataBindings.Clear()
093.
txtPhone.DataBindings.Clear()
094.
txtFax.DataBindings.Clear()
095.
txtmobile1.DataBindings.Clear()
096.
txtmobile2.DataBindings.Clear()
097.
txtoffice_tel.DataBindings.Clear()
098.
TxtRef.DataBindings.Clear()
099.
txtEmail.DataBindings.Clear()
100.
txttittle.DataBindings.Clear()
101.
TxtNickname.DataBindings.Clear()
102.
BDatePicker1.DataBindings.Clear()
103.
End
Sub
104.
105.
Private
Sub
btnFilter_Click(
ByVal
sender
As
System.
Object
, _
106.
ByVal
e
As
System.EventArgs)
Handles
btnFilter.Click
107.
If
addNewMode
Then
108.
Exit
Sub
109.
ElseIf
txtSearch.Text <>
""
Then
110.
111.
Dim
queryString, txt
As
String
112.
queryString =
"SELECT * FROM Contacts WHERE "
& fdName &
" LIKE ?"
113.
Dim
dtAdapter2
As
OleDbDataAdapter =
New
OleDbDataAdapter
114.
Dim
selectCMD
As
OleDbCommand =
New
OleDbCommand(queryString, dbconn)
115.
dtAdapter2.SelectCommand = selectCMD
116.
Dim
Keyword
As
String
=
"%"
& Trim(txtSearch.Text) &
"%"
117.
Select
Case
fdName
118.
Case
"Name"
119.
selectCMD.Parameters.Add(
"@Name"
, OleDb.OleDbType.VarWChar, 20).Value = Keyword
120.
Case
"Surname"
121.
selectCMD.Parameters.Add(
"@SurName"
, OleDb.OleDbType.VarChar, 20).Value = Keyword
122.
Case
"District"
123.
selectCMD.Parameters.Add(
"@District"
, OleDb.OleDbType.
Char
, 10).Value = Keyword
124.
Case
"Province"
125.
selectCMD.Parameters.Add(
"@Province"
, OleDb.OleDbType.
Char
, 20).Value = Keyword
126.
Case
"Postcal"
127.
selectCMD.Parameters.Add(
"@Postcal"
, OleDb.OleDbType.
Char
, 10).Value = Keyword
128.
Case
"Tel"
129.
selectCMD.Parameters.Add(
" @Tel"
, OleDb.OleDbType.
Char
, 15).Value = Keyword
130.
Case
"email"
131.
dtAdapter2.SelectCommand.Parameters.Add(
" @Email"
, OleDb.OleDbType.
Char
, 25)
132.
dtAdapter2.SelectCommand.Parameters(
"@Email"
).Value = Keyword
133.
End
Select
134.
Try
135.
dtSet.Clear()
136.
dtTable.Clear()
137.
dtAdapter2.Fill(dtSet,
"contacts"
)
138.
dtTable = dtSet.Tables(
"contacts"
)
139.
objCurrencyMgr =
CType
(
Me
.BindingContext(dtSet,
"contacts"
), CurrencyManager)
140.
Dim
datecolumn
As
New
DataColumn(
"contacts.Birthdate"
)
141.
datecolumn.AllowDBNull =
True
142.
143.
If
dtTable.Rows.Count = 0
Then
MessageBox.Show(
"ไม่พบข้อมูลที่ต้องการ ! "
,
"ผลการกรอง"
, _
144.
MessageBoxButtons.OK, MessageBoxIcon.Information)
145.
Dim
Bdatebind
As
New
Binding(
"value"
, dtSet,
"contacts.Birthdate"
)
146.
AddHandler
Bdatebind.Format,
AddressOf
DTformatter
147.
AddHandler
Bdatebind.Parse,
AddressOf
DTParser
148.
objclearbind(sender, e)
149.
BDatePicker1.DataBindings.Add(Bdatebind)
150.
SexStatusShow(sender, e)
151.
txttittle.DataBindings.Add(
New
Binding(
"Text"
, dtSet,
"contacts.Tittle"
))
152.
Catch
er
As
Exception
153.
Picture.Image =
Nothing
154.
MessageBox.Show(er.Message() & vbCrLf & er.StackTrace)
155.
Finally
156.
Dim
c = objCurrencyMgr.Position
157.
MessageBox.Show(txtFName.Text,
"Warnning!"
, MessageBoxButtons.OK, MessageBoxIcon.Information)
158.
MessageBox.Show(c,
"Warnning!"
, MessageBoxButtons.OK, MessageBoxIcon.Information)
159.
txt = dtTable.Rows(c).Item(
"name"
)
160.
MessageBox.Show(txt,
"Warnning!"
, MessageBoxButtons.OK, MessageBoxIcon.Information)
161.
btnSave.Enabled =
False
162.
btnAdd.Enabled =
False
163.
btnDelete.Enabled =
False
164.
btnEdit.Enabled =
False
165.
btnCancel.Enabled =
False
166.
btnFind.Enabled =
False
167.
End
Try
168.
End
If
169.
End
Sub