12/13/2013


ตัวอย่างการทำ Crystal Report แบบง่ายๆ ถ้าใน Visual Studio ไม่มี  Crystal Report  เหมือนในรูปให้ติดตั้ง Crystal Report ก่อนจะเริ่มทำนะค่ะ

วิธีการติดตั้ง Crystal Report ดังลิ้งนี้ค่ะ
http://codingsecret.blogspot.com/2014/08/install-crystal-report-on-visual-studio.html


เมื่อติดตั้งเสร็จเรียนร้อยจะมี Crystal Report เหมือนในรูป

1. New Project >>  ใน Form1  ให้ลาก  CrystalReportViewer ไว้ใน Form 1 จะได้เหมือนในรูป


2. ลาก PrintDialog เข้ามาใน Form1

3.  Add new item >> Data >> DataSet


4. ดู Toolbox เลือก DataTable ลากลงใน DataSet1.xsd

 5. คลิ๊กขวา >> Add >> Column สร้างตัวแปรเพื่อรับค่าที่จะมาส่งมา จนครบ >> กำหนด DataType ให้ถูกต้อง

6. Add new item >> เพิ่ม Crystal Report 


7.  OK >> Finish


8. จะได้หน้าตา  Crystal Report ดังนี้

 9. เพิ่ม DataSet เข้ามาใน  Crystal Report เลือกดังนี้ Database Fields >> Database Expert


10. จะได้ตัวแปรที่รอรับค่าดังนี้
11. Form ทั้งหมดมีดังนี้


12. เพิ่มโค้ด ตัวอย่าง ตามดังนี้

Public Class Form1
    Private Sub btn_showReport_Click(sender As Object, e As EventArgs) Handles btn_showReport.Click
        Dim dt_customer As DataTable = data_customer()
        Call showCryReport(dt_customer)
    End Sub

    Private Sub btn_Print_dialog_Click(sender As Object, e As EventArgs) Handles btn_Print_dialog.Click
        Dim dt_customer As DataTable = data_customer()
        Call showCryReport_Dialog(dt_customer)
    End Sub

    Private Function data_customer()
        Dim dt_customer As New DataTable("dt_customer")
        dt_customer.Columns.Add("id", GetType(Integer))
        dt_customer.Columns.Add("fname", GetType(String))
        dt_customer.Columns.Add("lname", GetType(String))
        dt_customer.Columns.Add("birthday", GetType(Date))

        Dim id() As Integer = {1, 2, 3, 4}
        Dim fname() As String = {"Anna", "Bu", "Cat", "Dan"}
        Dim lname() As String = {"na", "ja", "ka", "ok"}
        Dim birthday() As Date = {#1/2/2014#, #2/4/2014#, #3/8/2014#, #4/12/2014#}

        For i = 0 To 3
            Dim dr As DataRow
            dr = dt_customer.NewRow
            dr("id") = id(i)
            dr("fname") = fname(i)
            dr("lname") = lname(i)
            dr("birthday") = birthday(i)
            dt_customer.Rows.Add(dr)
        Next
        Return dt_customer
    End Function

    Private Sub showCryReport(ByVal dtprint As DataTable)
        Try
            Dim objRpt As New CrystalReport1
            objRpt.SetDataSource(dtprint)
            CrystalReportViewer1.ReportSource = objRpt
            CrystalReportViewer1.Zoom(100)
            CrystalReportViewer1.Refresh()
        Catch ex As Exception
            MessageBox.Show("กรุณาสั่งพิมพ์ใหม่ค่ะ", "พบข้อผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Stop)
        End Try
    End Sub

    Private Sub showCryReport_Dialog(ByVal dtprint As DataTable)
        Try
            Dim objRpt As New CrystalReport1
            objRpt.SetDataSource(dtprint)
            CrystalReportViewer1.ReportSource = objRpt

            Dim result As DialogResult = PrintDialog1.ShowDialog()
            'If click OK, print document to printer
            If result = Windows.Forms.DialogResult.OK Then
                objRpt.PrintOptions.PrinterName = PrintDialog1.PrinterSettings.PrinterName
                objRpt.PrintToPrinter(1, False, 0, 0)
            End If
        Catch ex As Exception
            MessageBox.Show("กรุณาสั่งพิมพ์ใหม่ค่ะ", "พบข้อผิดพลาด", MessageBoxButtons.OK, MessageBoxIcon.Stop)
        End Try
    End Sub

End Class


13. Run Project จะได้ดังนี้
  • กดที่ Show Report
  • กดที่ Print Dialog จะให้เลือกเครื่อง print และสั่งพิมพ์ได้เลยค่ะ


หากใคร Error
Could not load file or assembly 'file:///C:\Program Files\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet1\crdb_adoplus.dll' or one of its dependencies. The system cannot find the file specified. "  ให้แก้ไขได้ตามนี
 http://codingsecret.blogspot.com/2013/12/crystal-report-error-could-not-load.html

Download Semple Coding in vb.net Project


http://www.mediafire.com/download/kyqrk72zzvak3kq/CryReport.zip

Posted on Friday, December 13, 2013 by nuyingnaja

วันนี้เล่น Crystal Report ใน vb.net  พอเขียนโปรแกรมและแต่ง Report ให้ Connect กับ dataset เสร็จเรียบร้อยแล้ว  ติดปัญหาที่หาไฟล์ไม่เจอ ดังนี้




" Could not load file or assembly 'file:///C:\Program Files\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet1\crdb_adoplus.dll' or one of its dependencies. The system cannot find the file specified. "

มีวิธีแก้ไขปัญหานี้
เลือก App.config แล้ว copy ข้อความนี้ลงไป




<?xml version="1.0"?>
<configuration>
    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    </startup>
</configuration>

เพียงเท่านี้ก็สามารถแสดง Report ได้แล้วค่ะ

Posted on Friday, December 13, 2013 by nuyingnaja

10/20/2013

Public Sub ConnectionSql()

        Dim Conn As SqlConnection = New SqlConnection
        Dim IP As String = "192.000.XXX.XXX"
        Dim DBName As String = "Store"
        Dim Username As String = "MyAdmin"
        Dim Password As String = "password"


        Try

            Conn.Close()
            With Conn
                If .State = ConnectionState.Open Then .Close() : MsgBox("Can not connect to database server !") : Exit Sub
                .ConnectionString = "Data Source=" & IP & ";Initial Catalog=" & DBName & ";Persist Security Info=True;User ID=" & Username & ";Password=" & Password & ""
                .Open()
            End With

        Catch ex As Exception
            MsgBox("Can not connect to database server !")
         End Try


End Sub

Posted on Sunday, October 20, 2013 by nuyingnaja

9/22/2013

ค้นหา  Column ใน DataTable

If Not dtLawWord.Columns.Contains("ID") Then
                MessageBox.Show("Can not Find Columns ID")
End If

Posted on Sunday, September 22, 2013 by nuyingnaja

9/19/2013


Imports Microsoft.Office.Interop.Word
Imports Microsoft.Office.Interop
Imports Microsoft.Office

Public Class classWord

    Public Sub GetWord()


        Dim WdApp As New Application

        Dim WdDoc As Word.Document

        WdDoc = WdApp.Documents.Open("D:\text.doc")

        Dim rStart, rStop As Integer

        rStart = 100

        rStop = 200

        WdDoc.Range(Start:=rStart, End:=rStop).Delete()

        WdDoc.Save()

        WdDoc.Close()

        WdDoc = Nothing

        WdApp.Quit()

        WdApp = Nothing

    End Sub

End Class

Posted on Thursday, September 19, 2013 by nuyingnaja

9/17/2013


For Each oRow As DataGridViewRow In DataGridView1.Rows

            TextBox1.Text = oRow.Cells(1).Value

Next

Posted on Tuesday, September 17, 2013 by nuyingnaja


Private Sub CopyFileToFolder(ByVal FileName As String, ByVal FileNameNew As String)

        File.Copy(FileName, FileNameNew, True)

End Sub

Posted on Tuesday, September 17, 2013 by nuyingnaja


Private Sub CreatFolder(ByVal pathName As String)

        If Not System.IO.Directory.Exists(pathName) Then        ' ถ้าไม่มี Directory name นี้
            My.Computer.FileSystem.CreateDirectory(pathName)  ' ก็จงสร้าง Directory name นี้
        End If

End Sub

Posted on Tuesday, September 17, 2013 by nuyingnaja

9/16/2013


Dim i As Integer = DataGridView1.Rows.Count - 1

For irow = 0 To DataGridView1.Rows.Count - 1

            ' if Row is Selete Check Box is Delete row
            If DataGridView1.Rows.Item(i).Cells(0).Value = True Then

                DataGridView1.Rows.RemoveAt(i)

            End If
            i -= 1

Next

Posted on Monday, September 16, 2013 by nuyingnaja

For iIndex = DataGridView1.RowCount - 1 To 0 Step -1

                If DataGridView1.Rows.Item(iIndex).Cells(0).Value = txt_lawSearch.Text Then

                    DataGridView1.Rows(iIndex).Selected = True
                    Me.DataGridView1.CurrentCell = Me.DataGridView1.Rows(iIndex).Cells(0)
                    Exit Sub

                End If

Next iIndex

Posted on Monday, September 16, 2013 by nuyingnaja


Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick

        Dim ICell As Integer = e.ColumnIndex
        Dim IRow As Integer = e.RowIndex


        If _IRow >= 0 Then


            MsgBox(dgvView.Rows.Item(IRow).Cells(
ICell).Value)

        End If

 

End Sub

Posted on Monday, September 16, 2013 by nuyingnaja

DataGridView1.Rows.Clear()
      
With DataGridView1

        .Rows.Add("1", "AAA")
        .Rows.Add("2", "BBB")
        .Rows.Add("3", "CCC")
        .Rows.Add("4", "DDD")
        .Rows.Add("5", "EEE")

End With

==== หรือ ====

Dim dt As New DataTable
DataGridView1.DataSource = dt


Posted on Monday, September 16, 2013 by nuyingnaja


Private Sub btn_Browse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Browse.Click
        

   Try
            Dim BrowseFolder As New FolderBrowserDialog
            BrowseFolder.ShowDialog()
            txt_FolderFile.Text = BrowseFolder.SelectedPath
            If txt_FolderFile.Text = "" Then
                Exit Sub
            End If

            System.Windows.Forms.Application.DoEvents()
            Cursor = Cursors.WaitCursor
            Dim dir As New DirectoryInfo(txt_FolderFile.Text)

            Dim aryFi As FileInfo() = dir.GetFiles("*.doc")
            Dim fi As FileInfo
            Dim i As Integer = 1

            For Each fi In aryFi
                Dim gFile As String = Path.GetFileNameWithoutExtension(fi.Name)
                ' process
            Next
   Catch ex As Exception
            MsgBox(ex.Message)

   End Try

End Sub

Posted on Monday, September 16, 2013 by nuyingnaja


Private Sub WriteTxt_dt(ByVal dt As DataTable, ByVal path As String)

        Dim sw As StreamWriter = New StreamWriter("D:\" & 
path & ".txt")
        Dim FRow As DataRow()
        FRow = dt.Select("", "", DataViewRowState.CurrentRows)
        For Each r1 In FRow


            Dim lineoftext = r1("ID").ToString & " = " & r1("NAME").ToString
            sw.WriteLine(lineoftext)


        Next
        sw.Close()


End Sub

Posted on Monday, September 16, 2013 by nuyingnaja

9/15/2013

Private Sub WriteXml_dt(ByVal dt As DataTable)
        If dt.Rows.Count <> 0 Then
            'Save File Xml to D:\NewFolder
            dt.WriteXml("D:\NewFolder\Test.xml", XmlWriteMode.WriteSchema, True)
        End If

End Sub
 

Function ReadXml_dt()
        Dim _filePath As String = "D:\NewFolder"
        Dim _fileName As String = "Test.xml"
        Dim dt As New DataTable("dt")
        Dim ds As New DataSet()

        If System.IO.Directory.Exists(_filePath) Then      ' if not directory name
            Dim di As New DirectoryInfo(_filePath)
            Dim aryFi As FileInfo() = di.GetFiles(_fileName)
            Dim fi As FileInfo

            'Read File Xml
            For Each fi In aryFi
                ds.ReadXml(_filePath & "\" & _fileName)
                dt = ds.Tables(0).Copy
            Next

        End If
        Return dt

 

End Function

Posted on Sunday, September 15, 2013 by nuyingnaja

9/12/2013


          วันนี้นำเสนอ การลบลายน้ำใน Microsoft Word ด้วย VB.NET (Delete WaterMark Word)  ขั้นตอนมีดังนี้

1. เตรียมเอกสาร Microsoft Word ที่มี ลายน้ำ ตัวอย่างประมาณนี้
   - ในเอกสารนี้ประกอบด้วย ลายน้ำ (WaterMark)
   - ในเอกสารนี้ประกอบด้วย ลายน้ำส่วนหัว (Header WaterMark)




2. Create New Project ดังนี้
3. Select Windows Forms Application
4. Name : Winapp_DelWaterMark
5. OK



6. Design Form1 ดังนี้
    - Textbox : text_FolderFile
    - Butoon1 : btnDel_WaterMark
    - Butoon2 : btnDel_HeaderWaterMark




7.  คลิ๊กขวาที่ โปรแจค เพื่อ Add Reference...
8.  เลือก Tab ".NET"
9.  เลือก Interop.Microsoft.Office.Interop.Word  Version 8.4.0.0
10. OK




11.  Coding ดังนี้

Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Word

Public Class Form1
 

Private Sub btnDel_WaterMark_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDel_WaterMark.Click
        Dim WdApp As New Application
        Dim WdDoc As Word.Document
        Dim pathWord As String = txt_FolderFile.Text

        WdDoc = WdApp.Documents.Open(pathWord)
        WdApp.Visible = True

        Call DeleteWatermark(WdDoc, "CLEAR")

        WdDoc.Close()
        WdApp.Quit()

End Sub
 

Private Sub btnDel_HeaderWaterMark_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDel_HeaderWaterMark.Click
        Dim WdApp As New Application
        Dim WdDoc As Word.Document
        Dim pathWord As String = txt_FolderFile.Text

        WdDoc = WdApp.Documents.Open(pathWord)
        WdApp.Visible = True

        Call DeleteHeaderWatermark(WdDoc)

        WdDoc.Close()
        WdApp.Quit()

End Sub

Public Sub DeleteWatermark(ByVal worddoc As Word.Document, ByVal WATERMARK_STATUS As String)

        Dim i As Integer = 0
        Dim j As Integer = 0
        Dim shpname As String = Nothing

        Dim HdFt As Microsoft.Office.Interop.Word.HeaderFooter
        Dim WordDocument As Range = worddoc.Range

        'for each header
        Dim page As Integer = WordDocument.Sections.Count
        With WordDocument
            For i = 1 To page
                For Each HdFt In .Sections(i).Headers
                    With HdFt
                        For j = HdFt.Shapes.Count To 1 Step -1

                            ' Delete WaterMart
                            If WATERMARK_STATUS = "CLEAR" Then
                                .Shapes(j).Delete()
                            End If

                        Next j
                    End With
                Next
            Next
        End With

 

End Sub
 

Public Sub DeleteHeaderWatermark(ByVal worddoc As Word.Document)
        Dim WordDocument As Range = worddoc.Range
        Dim page As Integer = WordDocument.Sections.Count

        'for each header
        With WordDocument
            For i = 1 To page
                'Delete Header WaterMark
                For Each HdFt In .Sections(i).Headers
                    HdFt.Range.Delete()
                Next
            Next
        End With

End Sub


End Class



12. กด Run Program(F5)  และ Click Delete WaterMark  แสดงผลดังนี้



ในรูปจะเห็นว่าไม่พบลายน้ำ (WaterMark)  แล้ว


13.  Click Delete Header WaterMark  แสดงผลดังนี้



ในรูปนี้จะเห็นว่าในเอกสารของเราใสสะอาด ปราศจากลายน้ำที่รบกวนแล้วค่ะ

ทำง่ายๆ ขั้นตอนไม่ยุ่งยาก หวังว่าคงมีประโยชน์กับตัวเอง และคนอ่าน น่ะค่ะ


Download Semple Coding in vb.net Project

http://www.mediafire.com/?e0s8ull84gzj309

Posted on Thursday, September 12, 2013 by nuyingnaja

9/11/2013


Code Open file in visual basic 2010

โค้ด อ่านไฟล์ขึ้นมาแสดง

System.Diagnostics.Process.Start("D:\TEST.txt")

หรือ

Process.Start("D:\TEST.txt")

หรือ 

Shell("D:\app.exe")

Posted on Wednesday, September 11, 2013 by nuyingnaja

9/04/2013


 คำสั่งปิด Process ที่บ้างครั้งไม่จำไม่เป็น และต้องการปิด เขียนโค้ดดังนี้


Example
' สั่งปิด Process WINWORD
 
Dim procQ As System.Diagnostics.Process
For Each procQ In System.Diagnostics.Process.GetProcessesByName("WINWORD")
            procQ.Kill()
Next

Posted on Wednesday, September 04, 2013 by nuyingnaja


การตัดข้อความ การแยกประโยคด้วยคำหรือตัวอักษร

1. Split() การตัดข้อความ


Syntax
Split(ByVal Expression As String, Optional ByVal Delimiter As String)


Example

Dim test_date As String = "16 มิถุนายน 2556"
Dim getStr() As String = Split(test_date, " ")

For i = 0 To getStr.Length - 1
        
         MsgBox(getStr(i))
         ' 1. 16
         ' 2.  มิถุนาย
         ' 3.  2556

Next

** บทความที่เกี่ยวข้อง **
ฟังก์ชัน Mid ตัดคำใน vb.net

Posted on Wednesday, September 04, 2013 by nuyingnaja

การสลับคำจาก ตัวแรกให้ไปอยู่ตัวสุดท้าย และตัวสุดท้ายมาอยู่ตัวแรก ด้วย ฟังก์ชัน StrReverse

1. StrReverse() สลับคำ กลับคำ


Syntax
InStrRev(ByVal StringCheck As String, ByVal StringMatch As String, Optional ByVal Start As Integer)

Example

Dim test_word As String
test_word = "I Love Thailand"
 

' need  dnaliahT evoL I

Dim word As Integer =  StrReverse(test_word)   'dnaliahT evoL I

จากฟังก์ชันนี้จะเห็นได้ว่า ตัวอักษรจะสลับตำแหน่งกัน จากหน้ามือเป็นหลังมือ
 

Posted on Wednesday, September 04, 2013 by nuyingnaja

Public Function InStr(ByVal String1 As String, ByVal String2 As String, Optional ByVal Compare As Microsoft.VisualBasic.CompareMethod = Binary) As Integer
     Member of Microsoft.VisualBasic.Strings
Summary:

การแทนที่คำ ด้วย ฟังก์ชัน Replace

1. InStr() ค้นหาคำที่ต้องการ


Syntax
InStr(ByVal String1 As String, ByVal String2 As String)
InStrRev(ByVal String1 As String, ByVal String2 As String)

Example

Dim test_word As String
test_word = "I Love Thailand"
 

' need "h"

Dim location As Integer = InStr(test_word, "h")          ' 9
Dim location2 As Integer = InStrRev(test_word, "h")   ' 9
 

Posted on Wednesday, September 04, 2013 by nuyingnaja





การตัดคำที่มีประโยคยาว แต่ต้องการเฉพาะคำที่ต้องการเท่านั้น โดยใช้ ฟังก์ชัน Mid ตัดคำ ตัวอย่างดังนี้
 

Syntax
Mid(ByVal str As String, ByVal Start As Integer, ByVal Length As Integer)


Example

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim test_word As String
        test_word = "Thailand Only"

        ' need "Thailand"
        Dim A, B As String
        A = Mid(test_word, 1, 8)                     ' Thailand
        B = Microsoft.VisualBasic.Left(test_word, 8) ' Thailand

        ' need "Only"
        Dim C, D As String
        C = Mid(test_word, 10, 4)                     ' Only
        D = Microsoft.VisualBasic.Right(test_word, 4) ' Only


        test_word = "I Love Thailand"

        ' need "Love"
        Dim F, G As String
        F = Mid(test_word, 3, 4)                     ' Love

        ' ใช้ ฟังก์ชันค้นหาคำ ตำแหน่งของคำนั้นก่อน ตัวอย่างนี้ค้นหา "Love" หรือ "L" ก่อนก็ได้
        Dim locationStart As Integer = InStr(test_word, "Love")
        Dim locationStop As Integer = "Love".Length
        G = Mid(test_word, locationStart, locationStop) ' Love
End Sub

** บทความที่เกี่ยวข้อง **
ตัดข้อความด้วย Split
ฟังก์ชันค้นหาคำ
การอ่าน Microsoft Office Word จากตำแหน่งใน เอกสาร
 

Posted on Wednesday, September 04, 2013 by nuyingnaja


การแทนที่คำ ด้วย ฟังก์ชัน Replace

1. Replace() แทนที่คำที่ต้องการ


Syntax
Replace(ByVal Expression As String,ByVal Find As String, ByVal Replacement As String)


Example

ตัวอย่างคำ  Helly gyygle ให้แทน y เป็น 0 จะได้ัดังนี้
 
 Helly gyygle = Hello google

Coding in vb.net

Dim word as String = "Helly gyygle"
Dim str as String = Replace(word , "y", "o")   ' Hello google
Dim str2 as String = word .Replace("y", "o" ' Hello google

Posted on Wednesday, September 04, 2013 by nuyingnaja

9/03/2013


แปลง ตัวหนังสือเป็นตัวเลข ใน vb.net เขียน Code ได้ดังนี้

        Dim str As String = "50.50"
        Dim str2 As String = "1,050.49"

        Dim Conv_num As Integer = CInt(str)    '  50
        Dim Conv_num2 As Double = CInt(str)    '  50.0

        Dim Conv_num3 As Integer = Val(str)   '  50
        Dim Conv_num4 As Double = Val(str)    '  50.5

        Dim Conv_num5 As Double = CInt(str2)  '  1050.0
        Dim Conv_num6 As Double = Val(str2)   '  1

        ' * หมายเหตุที่ Conv_num6 = 1 เพราะเจอเครื่องหมาย , ใน str2 จึงอ่านค่าไม่ถูกต้องการแก้ไขให้ถูก ให้แก้โดยใช้ ฟังก์ชัน Replace แทนที่คำ ดังนี้

        ' * แทนที่ , ด้วยค่า null ดังนี้

        Dim Conv_num9 As Double = Val(Replace(str2, ",", ""))  ' 1050.49
        '========= END  ===========

*** บทความที่เกี่ยวข้อง ***
Convert Integer  to String
ฟังก์ชัน Replace แทนที่คำ

Posted on Tuesday, September 03, 2013 by nuyingnaja


แปลง ตัวเลขเป็นตัวหนังสือ ใน vb.net เขียน Code ได้ดังนี้

Dim num As Integer = 500
Dim num2 As Decimal = 2550.49

Dim Convstr As String = CStr(num)     '  500
Dim Convstr2 As String = CStr(num2)   '  2550.49
Dim Conv_num7 As String = Integer.Parse(num)  ' 500
Dim Conv_num8 As String = Decimal.Parse(num2) ' 2550.49

*** บทความที่เกี่ยวข้อง ***
Convert String to Integer


Posted on Tuesday, September 03, 2013 by nuyingnaja

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        ' แสดงวันที่และเวลา
        MsgBox(Now) 

        ' แสดงวันที่
        MsgBox(Now.Today)

End Sub


** บทความที่เกี่ยวข้อง **
แสดงรูปแบบวันที่ ค.ศ. และ พ.ศ. VB.NET
Convers String to Date in vb.net
DateAdd แสดงการเพิ่มวันที่และช่วงเวลา
บวก ลบ วันที่ / DateDiff เปรียบเทียบวันที่และเวลา
FormatDateTime
รูปแบบวันที่ เพิ่มเติม

Posted on Tuesday, September 03, 2013 by nuyingnaja


แสดงการเพิ่มวันที่และช่วงเวลา ใน vb.net

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'ต้องการทราบว่า นับจากวันนี้อีก 10 วันเป็นวันอะไร
        MsgBox(DateAdd(DateInterval.Day, 10, Today))

        ' หรือ ต้องการทราบว่า ณ วันที่ กำนดไว้ อีก 10 วันเป็นวันอะไร
        Dim D1 As Date = "#01/01/2013 10:11:12#"
        MsgBox(DateAdd(DateInterval.Day, 10, D1))


       ' หรือ ต้องการทราบว่า ณ วันที่ กำนดไว้ ย้อนหลัก 10 วันเป็นวันอะไร
        Dim D1 As Date = "#01/01/2013 10:11:12#"
        MsgBox(DateAdd(DateInterval.Day, -10, D1))


        ' หรือ ต้องการทราบว่า ณ วันที่และเวลา กำนดไว้ อีก 10 ชั่วโมง เป็นเวลาเท่าไร
        MsgBox(DateAdd(DateInterval.Hour, 10, D1))
End Sub

นอกจากตัวอย่างนี้แล้วยังมีให้เลือกอีกมาก ดังนี้



** บทความที่เกี่ยวข้อง **
แสดงรูปแบบวันที่ ค.ศ. และ พ.ศ. VB.NET
Convers String to Date in vb.net
DateAdd แสดงการเพิ่มวันที่และช่วงเวลา
บวก ลบ วันที่ / DateDiff เปรียบเทียบวันที่และเวลา
FormatDateTime
หาวันนี้ปัจจุบัน DateNow
รูปแบบวันที่ เพิ่มเติม

Posted on Tuesday, September 03, 2013 by nuyingnaja


         ใน vb.net มีการบวก ลบ วันที่ ซึ่งมีหลากหลายรูปแบบ และผลต่างแต่ละรูปแบบก็แล้วแต่การนำมาใช้งานของโปรแกรมนั้นๆ วันนี้มาดูกัน มีแบบไหนบ้าง

1. DateDiff() เปรียบเทียบวันที่เวลาระหว่าง เวลา1 และ เวลา2

Syntax
DateDiff(DateInterval,Date1,Date2)


DateInterval  มีดังนี้ เยอะมาก
DateInterval.Day
DateInterval.DayOfYear
DateInterval.Hour
DateInterval.Minute
DateInterval.Month
DateInterval.Quarter
DateInterval.Second
DateInterval.Weekday
DateInterval.WeekOfYear
DateInterval.Year

Example
Private Sub DateDiff_Show()
        Dim D1 As Date = "#01/01/2013#"
        Dim D2 As Date = "#01/12/2013#"

        Dim T1 As Date = "#05:02:22#"
        Dim T2 As Date = "#10:10:55#"

        Me.txt_D1.Text = DateDiff(DateInterval.Day, D1, D2)
        Me.txt_D2.Text = DateDiff(DateInterval.Year, D1, D2)
        Me.txt_D3.Text = DateDiff(DateInterval.Month, D1, D2)

        Me.txt_D4.Text = DateDiff(DateInterval.DayOfYear, D1, D2)
        Me.txt_D5.Text = DateDiff(DateInterval.Weekday, D1, D2)
        Me.txt_D6.Text = DateDiff(DateInterval.WeekOfYear, D1, D2)
        Me.txt_D7.Text = DateDiff(DateInterval.Quarter, D1, D2)

        Me.txt_D8.Text = DateDiff(DateInterval.Hour, T1, T2)
        Me.txt_D9.Text = DateDiff(DateInterval.Minute, T1, T2)
        Me.txt_D10.Text = DateDiff(DateInterval.Second, T1, T2)
End Sub


Download Semple Coding in vb.net Project
http://www.mediafire.com/?wmp8c21ke8bu6ne

** บทความที่เกี่ยวข้อง **
แสดงรูปแบบวันที่ ค.ศ. และ พ.ศ. VB.NET
Convers String to Date in vb.net
DateAdd แสดงการเพิ่มวันที่และช่วงเวลา
บวก ลบ วันที่ / DateDiff เปรียบเทียบวันที่และเวลา
FormatDateTime
หาวันนี้ปัจจุบัน DateNow
รูปแบบวันที่ เพิ่มเติม



Posted on Tuesday, September 03, 2013 by nuyingnaja


วันนี้มาดูในส่วนของการเปลี่ยนวันที่ (Convers) จาก String เป็น Datetime ดังนี้ค่ะ

Dim str_date As String = "20/09/2013"
Dim date_ As Date = CDate(str_date)

** บทความที่เกี่ยวข้อง **
แสดงรูปแบบวันที่ ค.ศ. และ พ.ศ. VB.NET
Convers String to Date in vb.net
DateAdd แสดงการเพิ่มวันที่และช่วงเวลา
บวก ลบ วันที่ / DateDiff เปรียบเทียบวันที่และเวลา
FormatDateTime
หาวันนี้ปัจจุบัน DateNow
รูปแบบวันที่ เพิ่มเติม


Posted on Tuesday, September 03, 2013 by nuyingnaja


         FormatDateTime ใน vb.net มีอยู่หลากหลายรูปแบบแล้วแต่การใช้งาน มาดูกันว่ามี Format แบบไหนบ้าง

Private Sub textbox_show()
        Dim test_date As Date = Now
        Me.txtD1.Text = Format(test_date, "dd/MM/yyyy")
        Me.txtD2.Text = Format(test_date, "d-M-yy")
        Me.txtD3.Text = Format(test_date, "MMM dd yyyy")
        Me.txtD4.Text = Format(test_date, "dd MMMM yyyy")
        Me.txtD5.Text = Format(test_date, "dd MMMM yyyy HH:mm:ss:fff")

        Me.txtD6.Text = FormatDateTime(test_date, DateFormat.GeneralDate)
        Me.txtD7.Text = FormatDateTime(test_date, DateFormat.LongDate)
        Me.txtD8.Text = FormatDateTime(test_date, DateFormat.LongTime)
        Me.txtD9.Text = FormatDateTime(test_date, DateFormat.ShortDate)
        Me.txtD10.Text = FormatDateTime(test_date, DateFormat.ShortTime)
End Sub





         Download Semple Coding in vb.net Project
http://www.mediafire.com/download/5t15vd05vvnzrne/Windows_Date.zip


** บทความที่เกี่ยวข้อง **
แสดงรูปแบบวันที่ ค.ศ. และ พ.ศ. VB.NET
Convers String to Date in vb.net
DateAdd แสดงการเพิ่มวันที่และช่วงเวลา
บวก ลบ วันที่ / DateDiff เปรียบเทียบวันที่และเวลา
FormatDateTime
รูปแบบวันที่ เพิ่มเติม

Posted on Tuesday, September 03, 2013 by nuyingnaja

              การแสดงรูปแบบวันที่  มีอยู่ 2 แบบคือ แบบ ค.ศ. และ พ.ศ. ในโปรแกรมถ้าไม่เขียนโค้ดกำหนดไว้  โปรแกรมจะแสดงรูปแบบวันที่ตามที่เครื่องกำหนดไว้  ดังนั้นถ้าต้องการทำให้แสดงรูปแบบวันที่เหมือนกันจะต้องเขียน โค้ดดังนี้


จะต้องเขียน code ไว้ใน Form1_Load หรือ Private Sub New() ค่ะ


การแสดงรูปแบบ ค.ศ.

My.Application.ChangeCulture("en-US")


การแสดงรูปแบบ พ.ศ.

My.Application.ChangeCulture("th-TH")


CodeDate

** บทความที่เกี่ยวข้อง **
แสดงรูปแบบวันที่ ค.ศ. และ พ.ศ. VB.NET
Convers String to Date in vb.net
DateAdd แสดงการเพิ่มวันที่และช่วงเวลา
บวก ลบ วันที่ / DateDiff เปรียบเทียบวันที่และเวลา
FormatDateTime
หาวันนี้ปัจจุบัน DateNow
รูปแบบวันที่ เพิ่มเติม



Posted on Tuesday, September 03, 2013 by nuyingnaja

9/02/2013


Close Msgbox in vb.net (โค้ดสั่งปิด Msgbox ในโปรแกรม)

ทั่วไปแล้วเราจะใช้ Msgbox ในการแสดงข้อความเตือนต่าง เช่น
MsgBox("Please Login !!!")

แต่ Code ตัวนี้จะแสดงข้อความเตือน 3 วินาที แล้วปิด Msgbox ในโปรแกรม ให้ด้วย เขียน code ดังนี้

Private Sub Msgbox_Show()
        CreateObject("WScript.Shell").PopUp("Please Login !!! ", 3, "Caution")
End Sub


Close Msgbox


*ขอบคุณข้อมูลดีดี จาก http://www.thai-access.com/topic_post.asp?CategoryID=1&TopicID=1240

Posted on Monday, September 02, 2013 by nuyingnaja

8/30/2013

คำสั่งหารปัดทศนิยมใน vb.net มีหลายตัว มาดูกันเลยว่าแต่ละ funtion ผลลัพธ์ของการปัดเศษจะเป็นอย่างไร

1. ปรับตัวเลขทศนิยมให้เป็นจำนวนเต็ม มากกว่า 0.5 ปัดขึ้น  น้อยกว่าหรือเท่ากับ 0.5 ปัดลง

Dim number As Double  
number = Math.Round(1.5)    ' ค่าที่ได้คือ  2
number = Math.Round(1.4)    ' ค่าที่ได้คือ  1 

2. ปรับตัวเลขทศนิยมเป็นจำนวนเต็ม ปรับเศษขึ้นอย่างเดียว
Dim number As Double
number = Math.Ceiling(1.5)    ' ค่าที่ได้คือ  2
number = Math.Ceiling(1.4)    ' ค่าที่ได้คือ  2

3. ปรับตัวเลขทศนิยมเป็นจำนวนเต็ม ปรับเศษลงอย่างเดียว
Dim number As Double
number = Math.Floor(1.5)    ' ค่าที่ได้คือ  1
number = Math.Floor(1.4)    ' ค่าที่ได้คือ  1

4. Mod หารเอาเศษ
Dim number As Double
number = 5 Mod 3                ' ค่าที่ได้คือ  2
number = 5 Mod 5                ' ค่าที่ได้คือ  0

5. / หารธรรมดา
Dim num2 As Double
num2 = 11 / 4                      ' ค่าที่ได้คือ  2.75
num2 = 10 / 4                      ' ค่าที่ได้คือ  2.5

6. \ หารตัดเศษทิ้ง หรือไม่เอาเศษ
Dim num2 As Double
num2 = 11 \ 4                      ' ค่าที่ได้คือ  2
num2 = 10 \ 4                      ' ค่าที่ได้คือ  2
num2 = 9 \ 4                        ' ค่าที่ได้คือ  2


7.  หารเอาจำนวนเต็ม ใน vb.net  ให้ประกาศตัวแปรเป็น Integer ทศนิยมมากกว่า 0.5 ปัดขึ้น น้อยกว่าหรือเท่ากับ 0.5 ปัดลง vb.net จะทำให้เอง
Dim num2 As Integer
num2 = 2.6              ' ค่าที่ได้คือ 3
num2 = 2.4              ' ค่าที่ได้คือ 2

Posted on Friday, August 30, 2013 by nuyingnaja

8/21/2013

Public Function GetNoOfPagesDOC(ByVal FileName__1 As String) As Integer
        Dim num As Integer = 0
        Dim fileName__2 As Object = FileName__1
        Dim [readOnly] As Object = False
        Dim isVisible As Object = True
        Dim objDNS As Object = Word.WdSaveOptions.wdDoNotSaveChanges
        Try
            Dim WordApp As New Word.Application

            ' give any file name of your choice.


            '  the way to handle parameters you don't care about in .NET
            Dim missing As Object = System.Reflection.Missing.Value

            '   Make word visible, so you can see what's happening
            'WordApp.Visible = true;
            '   Open the document that was chosen by the dialog

            Dim aDoc As Word.Document = WordApp.Documents.Open(fileName__2, missing, [readOnly], missing, missing, missing, _
             missing, missing, missing, missing, missing, isVisible, _
             missing, missing, missing, missing)
            Dim stat As Word.WdStatistic = Word.WdStatistic.wdStatisticPages
            num = aDoc.ComputeStatistics(stat, missing)
            WordApp.Quit(objDNS, missing, missing)
            aDoc = Nothing
            WordApp = Nothing
            GC.Collect()
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
        Return num

End Function


Posted on Wednesday, August 21, 2013 by nuyingnaja


Public Function GetNoOfPagesPDF(ByVal FileName As String) As Integer
        Dim Count As Integer = 0
        If FileName <> "" Then
            'Open the file
            Dim fstream As New IO.FileStream(FileName, IO.FileMode.Open, IO.FileAccess.Read)
            Dim stream As New IO.StreamReader(fstream)        'Read the contents
            Dim strContents As String = stream.ReadToEnd()        'Count the Total page cound
            Dim reg As System.Text.RegularExpressions.Regex = _
            New System.Text.RegularExpressions.Regex("/Type\s*/Page[^s]")

            Dim mat As System.Text.RegularExpressions.MatchCollection = reg.Matches(strContents)
            Count = mat.Count
        End If

        Return Count
End Function


Posted on Wednesday, August 21, 2013 by nuyingnaja

 ' Open File ShowDialog
    Public Function OpenFile(ByVal TypeFile As String)
        Dim _FileFull As String = ""
        Dim _typefile As String = ""

        If TypeFile = "pic" Then
            _typefile = "Picture Files (*.JPG)|*.JPG;"

        ElseIf TypeFile = "word" Then
            _typefile = "Office Documents (*.doc)|*.doc; "

        ElseIf TypeFile = "txt" Then
            _typefile = "text Documents (*.txt)|*.txt; "

        Else
            _typefile = "PDF File (*.pdf)|*.pdf"
        End If
        Try
            Dim dlg As OpenFileDialog = New OpenFileDialog()
            dlg.Filter = _typefile
            dlg.Title = "Open"
            If dlg.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
                _FileFull = dlg.FileName

                '=============================================
                If TypeFile = "pic" Then
                    Dim a As IO.FileInfo = New IO.FileInfo(_FileFull)
                    If a.Length > 20000 Then
                        Dim aaa = a.Length
                        MessageBox.Show("กรุณาเลือกไฟล์ขนาดไม่เกิน 200 KB")
                        OpenFile("pic")
                    End If
                End If

                '=============================================

            End If


        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
        Return _FileFull
    End Function

Posted on Wednesday, August 21, 2013 by nuyingnaja

Private _StrConnAccess As String
    Private cConn As New clsConnection

    Public ReadOnly Property ConnectionStringAccess() As String
        Get
            Dim _StrConnAccess As String = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=C:\Excel1.mdb;"
            Return _StrConnAccess
        End Get
    End Property
    Private _OrclConnectionAccess As OleDbConnection
    Public ReadOnly Property OrclConnectionAccess() As OleDbConnection
        Get
            OrclConnectionAccess = New OleDbConnection(ConnectionStringAccess)
            Return OrclConnectionAccess
        End Get
    End Property

    Public connAcc As OleDbConnection
    Public Function ConnectionAccess_Open() As Boolean
        Dim Y As Boolean = True
        If connAcc Is Nothing Then
            connAcc = New OleDbConnection(ConnectionStringAccess)
        End If
        If connAcc.State = ConnectionState.Closed Then
            Try
                connAcc.Open()
            Catch ex As Exception
                MsgBox("Cannot open database Access connection")
                Y = False
            End Try
        End If
        Return Y
    End Function

    Public Sub ConnectionAccess_Close()
        If connAcc IsNot Nothing Then
            If connAcc.State <> ConnectionState.Closed Then
                Try
                    connAcc.Close()
                    connAcc.Dispose()
                Catch ex As Exception

                End Try
            End If
        End If
        connAcc = Nothing
    End Sub

Posted on Wednesday, August 21, 2013 by nuyingnaja

8/20/2013

การอ่าน Microsoft Office Word จากตำแหน่งใน เอกสาร

1. Create New Project  ตามนี้


2. Create Form1 => Add Reference... ดังนี้


3. เลือก  Interop.Microsoft.office Interop.Word ดังนี้



4. เตรียมเอกสารใ้ห้พร้อม ตัวอย่างได้สร้างไว้ที่  D:\Test_Word.docx


5. เขียน Code ตามนี้

Imports Microsoft.Office.Interop.Word
Imports Microsoft.Office.Interop

Public Class Form1
    Private WdApp As New Application
    Private WdDoc As Word.Document

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Dim dt_Word As DataTable
        Dim pathWord As String = "D:\Test_Word.docx"
        Dim word As String
        WdDoc = WdApp.Documents.Open(pathWord)
        'WdApp.Visible = False
        Threading.Thread.Sleep(1000)

        word = GetWord(pathWord) 'Send file name process in getword
        ' Close process WinWord.exe
        WdDoc.Close()
        WdApp.Quit()

        TextBox1.Text = word
        MsgBox(word)
    End Sub

    Function GetWord(ByVal pathWord As String) As String
        Dim allPage As Integer
        Dim startPage As Integer
        startPage = WdApp.Selection.Range.Start
        allPage = WdApp.Selection.Range.StoryLength
        Dim word As String
        word = Character(startPage, allPage)
        Return word
    End Function

    Function Character(ByVal s As Integer, ByVal e As Integer) As String
        Dim _word As String = ""
        Dim range As Word.Range

        If s < e And s > -1 Then
            range = WdDoc.Range(Start:=s, End:=e)
            _word = range.Text
        End If
        Return _word
    End Function

    'Find location Word
    Function findWord_location() As Integer
        'กรณีต้องการหาตำแหน่ง ของตัวอักษร แทน startPage ก้อได้
        ' ตัวอักขระพิเศษของ MS Word ดูได้จาก http://support.microsoft.com/kb/214204
        ' ถ้ายังสงสัยลองกด Ctrl+F ใน MS Word Find what: ^t จะเจอ แต่ต้องมีเอกสารที่มี TAB ด้วยน่ะไม่งั้นไม่เจอน่ะ 555+
        ' ^t = TAB
        ' ^p = Enter

        WdDoc.Select()
        WdApp.Selection.Find.ClearFormatting()
        Dim wh As String = "^t" & "ข้อที่ 1"       'ต้องการหาคำที่ประกอบด้วย 1TAB ข้อที่ 1
        'Dim wh As String = "^t^t" & "ข้อที่ 2"    'ต้องการหาคำที่ประกอบด้วย 2TAB ข้อที่ 2

        With WdApp
            With .Selection.Find
                .Text = wh
                .Replacement.Text = ""
                .Forward = True
                .Format = True
                .MatchCase = False
                .MatchWholeWord = False
                .MatchWildcards = False
                .MatchSoundsLike = False
                .MatchAllWordForms = False
            End With
        End With

        Dim location As Integer
        If WdApp.Selection.Find.Execute = True Then
            location = WdApp.Selection.Range.Start
        End If

        Return location
    End Function
End Class

6. เมื่อ Run Program(F5) จะอ่านได้ดังนี้

7. ศึกษาเพิ่มเติมเรื่อง อักขระพิเศษใน MS Word ตาม Link นี้ค่ะ
    http://support.microsoft.com/kb/214204

Posted on Tuesday, August 20, 2013 by nuyingnaja