หน้าหลัก
ข่าวสาร - บทความ ทั้งหมด
VB 6/VB.Net
ASP/ASP.Net
จับฉ่ายคอมพิวเตอร์
เรียนรู้ผ่าน Flash Movie
บทความที่มีผู้ตอบล่าสุด  
 RSS Feeds
 ดาวน์โหลดโปรแกรม RSS Reader ได้ที่นี่ ...   Download โปรแกรม RSS Reader

กระดานข่าวสาร เว็บบอร์ด - www.g2gnet.com
ดาวน์โหลดฟรีโปรแกรม และ Free Souce Code ได้ที่นี่ ...
รู้จักกับเว็บมาสเตอร์ - www.g2gnet.com
::: โปรแกรมมาใหม่ :::
โปรแกรมพิมพ์สติ๊กเกอร์บาร์โค้ด - Barcode Sticker
โปรแกรมพิมพ์สติ๊กเกอร์บาร์โค้ด - Barcode Sticker
โปรแกรมไปรษณีย์ และ จุดชำระค่าบริการ (iPayPost Software)
โปรแกรมไปรษณีย์ และ จุดชำระค่าบริการ
โปรแกรมจุดรับชำระค่าบริการ (iPayLite Software)
โปรแกรมจุดรับชำระค่าบริการ
::: BarcodeSoft :::
::: Printing :::
โปรแกรมพิมพ์รหัสบาร์โค้ด - BarcodeSoft Printing
โปรแกรมรหัสไปรษณีย์ทั่วไทย
::: G2GNet PostCode :::
!!!!! แจกฟรี !!!!!
ดาวน์โหลดโปรแกรมรหัสไปรษณีย์ทั่วไทย G2GNet PostCode Thailand
Visitors - Session views
 3 5 2 1 0 1 2

7 ธันวาคม พ.ศ.2549
85 Users On-Line.
Visitors - Page views
 6 1 9 3 5 5 7
1 กุมภาพันธ์ พ.ศ.2551

Google   
เว็บ g2gnet.com
ขนาดตัวอักษร:  
    ดาวน์โหลด และ แนะนำวิธีการติดตั้ง Active Report Professional 2.0
    แจกฟรี Source Code โปรแกรมขายสินค้า - Point Of Sale (โดย เว็บมาสเตอร์-ทองก้อน
    แจกฟรี Source Code การพิมพ์ใบกำกับภาษี - Active Report 2.0 (โดย ctx-9000@hotmail.com)
    SourceCode การดึงข้อมูลมาแสดงผลลงใน SharpGrid (โดย dos_network@hotmail.com)
    แจกฟรี Source Code VB6+Access โปรแกรมฐานข้อมูลครุภัณฑ์
    แจกโปรแกรมดูทีวี ดูหนัง ฟังวิทยุ ฟังเพลงออนไลน์ - G2GnetTV On Line ... ฟรีๆๆๆๆ
          ข้อมูลสถานี/รายการ (XML)  ข้อมูลสถานี/รายการ (HTML)
โปรแกรมระบบบัญชี Profit - Account

เรียนรู้ Visual Basic 6.0 กับ ฐานข้อมูล MS Access ภาค 10 (การทำรายงาน)

Category »  VB 6/VB.Net
โดย : Webmaster เมื่อ 27/7/2550 1:59:00
(อ่าน : 30782)/(ตอบ : 49)  ข้อคิดเห็น   |   พิมพ์   |  

เมื่อไปงานเลี้ยงแบบโต๊ะจีน เวลาเขามาเสิร์ฟพวกผลไม้ หรือ ของหวาน นั่นแหละรู้เลยว่างานเลี้ยงกำลังจะเลิกรา (แหมกำลังได้ที่เลย ... แบบนี้ต้องหาที่ไปต่อ 55555) ฉันใดก็ฉันนั้น เมื่อเขียนโปรแกรมจนได้ผลงานออกมาตามที่ต้องการ รวมไปถึงการทดสอบเพื่อหาข้อผิดพลาดต่างๆแล้ว ต่อมาก็คือ การทำรายงาน (Report) เป็นกระบวนการในขั้นตอนสุดท้าย และไม่ว่าท่านจะใช้งาน ActiveX Report ของค่ายใดๆก็ตามแต่ แท้จริงนั้น Concept หรือ หลักการ (หลักๆ) ของ (พวก) มันก็คล้ายๆกันทั้งหมด ประเด็นสำคัญๆนั่นก็คือ

      1. ดึงฟิลด์ข้อมูลต่างๆมายัดใส่ไว้ใน SQL Statement หรือที่เรียกกันว่า QUERY ซึ่งตรงนี้แหละที่จะประกอบไปด้วยสูตร สมการ เงื่อนไข การคำนวณต่างๆ เข้ามาประกอบกัน (เนื้อๆเน้นๆ มันก็คือเรื่อง DataBase)
      2. ส่งฟิลด์ข้อมูลต่างๆ ไปให้กับ Control ที่อยู่บนแบบฟอร์มรายงานเพื่อทำการแสดงผล
ผมเลยเลือก Data Report มาเป็น Case Study เพื่อให้พี่น้องได้ทำการศึกษาเป็นแนวทาง (ที่นำไปใช้งานจริงๆได้เลย) หากทำความเข้าใจในส่วนนี้ได้อย่างถ่องแท้แล้ว กับ Crystal Report หรือ Active Report น่ะมันแค่เรื่องประติ๋วไปเลย ... นี่แหละผมถึงบอกว่า "พื้นฐาน" มันเป็นเรื่องที่สำคัญ สำคัญที่มันจะนำไปใช้ "ต่อยอด" ได้

 

การทำรายงานใน Data Report โดยไม่ใช้ DataEnvironment

ผมจะใช้โปรแกรมของเดิมในภาค 8 มาต่อยอด เพื่อทำรายงานใน Data Report นำเสนอให้กับพี่น้องได้ดู ได้ชม หรือ จะดมก็สุดแท้แต่ท่านก็แล้วกัน แน่นอนครับงานชิ้นนี้ผมจะไม่ผูกติด Control ไว้กับฟิลด์ใดๆในตารางข้อมูลเลยในขณะออกแบบ หรือ Design Time เราจะอาศัยการทำงานของโปรแกรมที่เรียกว่า "RUN-TIME" นั่นคือ เราจะเห็นผลลัพธ์ของการทำงานของโปรแกรม ก็ต่อเมื่อเราสั่งโปรแกรมให้ทำงานแล้วเท่านั้น ซึ่งจากตัวอย่างที่จะได้รับชมต่อไปนี้ บอกได้เลยว่า "เอาไปทำมาหากินได้" อย่างไม่ต้องไปอายใครเขาแน่นอน


เริ่มจากการเพิ่มตัวรายงานเข้ามา (คลิ๊กเมาส์ขวาแล้วทำการเลือก Data Report)

      ส่วนใหญ่ท่านก็คงจะมีหนังสือกอดไว้แนบกับอกกันแล้วทั้งนั้น ... ผมก็ขออธิบายเกี่ยวกับโครงสร้างของพื้นที่รายงานแบบคร่าวๆก็พอน่ะครับ ... พี่น้อง
      Report Header ก็ปรากฏเป็นส่วนหัวของรายงาน ซึ่งจะอยู่หน้าแรกเท่านั้น
      Page Header เป็นส่วนหัวของหน้ารายงานทุกๆหน้า เช่น ป้ายบอกรหัสลูกค้า ชื่อ - นามสกุล
      Detail นี่แหละส่วนสำคัญที่ต้องแสดงข้อมูลออกมา
      Report Footer เป็นส่วนท้ายสุดของรายงาน มีที่หน้าสุดท้ายของรายงานเท่านั้น (คู่กับ Header)
      Page Footer เป็นส่วนท้ายของหน้ารายงานทุกๆหน้า ก็เอาไว้แสดงพวกหมายเลขหน้า

ลาก Control มาวางไว้บนรายงาน (สนใจแต่เพียง TextBox เป็นหลักน่ะครับ)


ประเด็นที่สำคัญคือ TextBox ที่เอามาวางไว้นั้นมันจะทำการรับค่าเพื่อมาแสดงผล
และะแบบไม่ต้องผูกติดคอนโทรล (UnBound) ใดๆทั้งสิ้น


การเสริมแต่งออพชั่นเข้าไปให้ดูดีมีชาติตระกูล (แบบไอ้หงิก)


ผลที่ได้จากการรันโปรแกรม แจ่มบ้างมั้ยครับ ... พี่น้อง
ใครจะไปคิดว่ามันมาจาก Data Report เหอๆๆๆๆ

   ดาวน์โหลด Source Code สำหรับ MS Visual Basic 6.0 - Service Pack 6

กล่าวง่ายๆเลย ในภาคนี้ผมจะเอาข้อมูลที่อยู่ในตาราง FlexGrid มาพิมพ์รายงาน


' จากภาค 8 จะมีส่วนเพิ่มเติมแก้ไขขึ้นมาดังนี้
Option Explicit
' ประกาศตัวแปรให้มองเห็นทั่วทั้งฟอร์ม
' ไว้รับค่าของการค้นหา
Dim Criteria As String

โปรแกรมย่อยเพื่อทำการค้นหาข้อมูล หาได้แล้วก็จะเอาไปพิมพ์รายงานนี่แหละคร้าบผม
Private Sub cmdSearch_Click()
If Trim(txtSearch.Text) = "" Or Len(Trim(txtSearch.Text)) = 0 Then
    txtSearch.SetFocus
    Exit Sub
End If

' ส่งค่าจาก txtSearch ไปเก็บไว้ในตัวแปร Criteria
' txtSearch มีค่าอะไร Criteria ก็ต้องมีค่าตามนั้น (แต่ต้องหลังจากกดปุ่ม cmdSearch น่ะครับ)
Criteria = Trim(txtSearch.Text)
'
Dim CountRec As Long, item As Long
Set RS = New ADODB.Recordset
' เวอร์ชั่นนี้ผมเพิ่มการค้นหา CustomerID เข้ามาแล้วน่ะครับ
Statement = "SELECT tblCustomer.*, tblTitle.TitleName " & _
                        " FROM tblCustomer INNER JOIN tblTitle ON tblCustomer.TitleID = tblTitle.TitleID " & _
                        " WHERE " & _
                            " [CustomerID] " & " Like '%" & Trim(txtSearch.Text) & "%'" & " OR " & _
                            " [FirstName] " & " Like '%" & Trim(txtSearch.Text) & "%'" & " OR " & _
                            " ..................... & _
                            " ORDER BY CustomerID "

RS.CursorLocation = adUseClient
...
...
...
...
RS.Close
Set RS = Nothing
End Sub

โปรแกรมย่อยเพื่อแสดงข้อมูลใหม่ทั้งหมด แล้วก็จะเอาไปพิมพ์รายงานนี่แหละขอรับ
Private Sub cmdRefresh_Click()
    txtSearch.Text = ""
    ' txtSearch มีค่าอะไร Criteria ก็ต้องมีค่าตามนั้น (แต่ต้องหลังจากกดปุ่ม cmdRefresh น่ะครับ)
    Criteria = ""
    Call SetupFgCustomer
    Call DisplayFgCustomer
End Sub

ขั้นตอนของการนำข้อมูลมาพิมพ์ออกเป็นรายงาน


Private Sub cmdPrintReport_Click()
    
    Set RS = New Recordset
    ' SQL Statement นี้เราสามารถนำไปประยุกต์ใช้ได้เยอะมาก ลองดูกับตารางกริดได้เลย
    Statement = "SELECT " & _
    " Right$('0000000' & [tblCustomer.CustomerID], 7) AS CusID, " & _
    " [FirstName] & '  ' & [LastName] AS Name, " & _
    " [tblCustomer.Address] &  CHR(32) & CHR(32) & [tblCustomer.Amphur] & CHR(10) & " & _
    " IIF([tblProvince.ProvinceName]='กรุงเทพมหานคร', [tblProvince.ProvinceName],
    'จ.' & [tblProvince.ProvinceName]) & ' ' & " & _ " [tblCustomer.PostCode] AS Address " & _ " FROM tblCustomer INNER JOIN tblProvince ON tblCustomer.ProvinceID = tblProvince.ProvinceID " ' จาก SQL Statement ' CHR(32) หรือ 20H (ฐาน 16) รหัส ASCII Code ตัวนี้คือ Space หรือ ช่องว่าง มีค่าเท่ากับ ' ' ' CHR(10) หรือ 0AH (ฐาน 16) คือ การเลื่อนบรรทัดใหม่ (Line Feed) ' Right$('0000000' & [tblCustomer.CustomerID], 7) AS CusID ' การผสมของ String เช่น CustomerID = 1 ดังนั้นเมื่อ '0000000' & 1 ก็จะได้ '00000001' คือ 8 หลัก ' จากนั้นให้นับความยาวจากทางขวามือมา 7 ตัว (หรือหลัก) ... พร้อมกับตั้งชื่อฟิลด์เพื่ออ้างถึง คือ CusID ' [FirstName] & ' ' & [LastName] AS Name เป็นการรวมฟิลด์ (Merge) เข้าด้วยกัน ' แล้วตั้งชื่อฟิลด์ของการรวมใหม่ให้มันดังตัวอย่าง คือ Name ' กรณีของ MySQL หากจำไม่ผิดมันใช้ CONCAT (ConCatenate) เข้าช่วยครับผม ' IIF(การทดสอบเงื่อนไข, จริง, เท็จ) ' หากเป็นจริง หรือ tblProvince.ProvinceName = 'กรุงเทพมหานคร' ก็สั่งให้พิมพ์กรุงเทพมหานครเลย ' หากเป็นเท็จ ก็เลยต้องสั่งพิมพ์ 'จ.' นำหน้า ตามด้วย tblProvince.ProvinceName ' =================================================================== ' เห็นข้อดีของการแยกตารางย่อยออกมาหรือยังครับ ... tblCustomer - tblProvince ' นอกจากจะประหยัดพื้นที่หน่วยความจำ สะดวกต่อผู้ใช้งาน แล้วยังสะดวกต่อผู้พัฒนาโปรแกรมด้วย ' และผมไม่เคยอ้างถึง Normalization เพราะอธิบายจนหัวหงอกก็ไม่รู้เรื่อง ... 55555555555555555 ' =================================================================== ' หากมีการค้นหาข้อมูล Criteria จะมีค่าเท่ากับ txtSearch.Text ' เหตุผลที่ต้องเอาค่าจาก txtSearch.Text ไปเก็บไว้ในตัวแปร Criteria ก็เผื่อถ้าหากผู้ใช้งานไปเปลี่ยนค่า ' ใน txtSearch.Text แต่ไม่ได้กดปุ่มค้นหา (cmdSearch) ' พูดง่ายๆ มันเหมือนกับว่าเราจะเอาข้อมูลจาก FlexGrid มาพิมพ์นั่นเอง ... พี่น้อง 55555 ' และเวอร์ชั่นนี้ผมเพิ่มการค้นหา CustomerID เข้ามาแล้วน่ะครับ If Criteria <> "" Then ' แสดงว่ามีการค้นหาข้อมูลมาใส่ในตารางกริด Statement = Statement & _ " WHERE " & _ " [CustomerID] " & " Like '%" & Criteria & "%'" & " OR " & _ " [FirstName] " & " Like '%" & Criteria & "%'" & " OR " & _ " [LastName] " & " Like '%" & Criteria & "%'" & _ " ORDER BY CustomerID " Else ' จัดเรียงข้อมูลตามหมายเลข CustomerID Statement = Statement & " ORDER BY CustomerID " End If RS.CursorLocation = adUseClient RS.Open Statement, ConnMyDB, adOpenForwardOnly, adLockReadOnly, adCmdText ' ไม่มีข้อมูลก็จบการทำงานของมันซ่ะ ... เสียเวลา If RS.RecordCount <= 0 Then MsgBox "ไม่มีข้อมูลในการพิมพ์รายงาน.", vbOKOnly + vbExclamation, "รายงานสถานะ" RS.Close: Set RS = Nothing Exit Sub End If ' ตั้งค่าระยะการพิมพ์แบบ Run-Time With rptCustomer .LeftMargin = 1440 .TopMargin = 1440 ' กระดาษ A4 (210 mm x 297 mm หรือ 11907 twips x 16840 twips). ' หน่วยการวัด 1440 Twip = 1 นิ้ว หรือ 25.4 มิลลิเมตร (โดยประมาณ) ' หรือ 567 twips = 1 cm. ' สมมุติน่ะครับ สมมุติ ต้องการหน่วยวัดเป็นมิลลิเมตร ' ให้ขอบขวา 15 มม. ก็กลับสูตรบัญญัติไตรยางค์ดูครับพี่น้อง ... .RightMargin = (1440 * 15) / 25.4 '.ReportWidth = Printer.Width - .LeftMargin - .RightMargin ' ตั้งค่ากระดาษแบบแนวตั้ง .Orientation = rptOrientPortrait End With ' เริ่มผูกฟิลด์ข้อมูลส่งไปให้กับ TextBox ที่อยู่ใน rptCustomer ' ลักษณะการทำงานแบบนี้เราเรียกว่า Run Time น่ะครับ ... พี่น้อง With rptCustomer ' ผูกตาราง (RecordSet) ให้กับรายงาน Set .DataSource = RS With .Sections("Section1").Controls' ก็บริเวณ Detail ล่ะครับ ' อ้างถึงฟิลด์ CusID ประกอบด้วยการรวมของ String ขนาด 7 หลัก .item("txtCustomerID").DataField = RS.Fields(0).Name ' ฟิลด์ Name ประกอบด้วยชื่อ และ นามสกุล .item("txtCustomerName").DataField = RS.Fields(1).Name ' ฟิลด์ Address ประกอบด้วยที่อยู่ อำเภอ จังหวัด และ รหัสไปรษณีย์ .item("txtAddress").DataField = RS.Fields(2).Name End With End With ' เปิดฟอร์มรายงานแบบเต็มจอ rptCustomer.WindowState = vbMaximized ' แสดงผลรายงาน rptCustomer.Show vbModal ' เมื่อเลิกใช้งานเราก็ต้องปิดมันซ่ะ RS.Close: Set RS = Nothing End Sub

Conclusion:
จะเห็นได้ว่าหากเราต้องการคำนวณหาค่า เช่น Sum, Average หรืออื่นๆ ก็เพียงแต่กำหนดจาก SQL Statement (Query) ก็จะสามารถแก้โจทย์ปัญหาต่างๆได้อย่างไ่ม่ยากเย็นนัก สำหรับภาคนี้ผมได้วาง Bug หรือการเกิดข้อผิดพลาดบางประการขึ้น ที่เราเรียกว่า "Logical Error" คือ โปรแกรมทำงานฉลุยทุกอย่าง แต่ได้คำตอบที่ไม่ตรงกับความต้องการ (ดังภาพด้านล่าง) ซึ่งการเกิด Error ในลักษณะแบบนี้เป็นการแก้ไขความผิดพลาดที่ยากที่สุดครับ

  • Syntax Error - การพิมพ์คำสั่งผิดไม่ตรงไวยากรณ์ (Syntax) ของแต่ละภาษา
  • Run Time Error - โปรแกรมผิดพลาดในระหว่างของการทำงาน ปกติเราจะ Trap Error เพื่อแก้ปัญหา
  • Logical Error เจ้านี่แหละยากสุดครับ ... การป้องกัน คือ พยายามออกแบบงานต่างๆให้รอบคอบ รัดกุม ให้เป็นระบบ
เวลามันค้นหาข้อมูลแสดงผลในตารางกริดได้ถูกต้อง แต่เวลาตอนพิมพ์เป็นรายงานกลับมาไม่ครบ สาเหตุคือว่า ผมไม่ได้ดึงข้อมูลจากตารางคำนำหน้า (tblTitle) เข้ามาด้วย ตรง ดร. นี่แหละที่เป็นคำนำหน้า ... ก็ขอให้พี่น้องลองแก้ไขดูครับ ไม่ยากหรอก

 


ผมสร้าง Bug เอาไว้ให้แก้กันเล่นๆ


นั่นแหละข้อมูลที่หายไป ... เนื่องจากผมไม่ได้ดึงตารางคำนำหน้า (tblTitle) เข้ามาด้วย

อีกอย่างที่ผมอยากให้พี่น้องได้ลองแก้ไขดู ก็คือทำยังไงให้มีคำว่า "อ." นำหน้าชื่ออำเภอ สำหรับจังหวัดที่ไม่ใช่กรุงเทพมหานคร ส่วนกรุงเทพฯให้ใช้ "เขต" นำหน้าแทน ... ลองทำดูครับ ไม่ยากเกินไปนักหรอก ... ขอให้ประเทศชาติเรามีโปรแกรมเมอร์เก่งๆเพิ่มขึ้นอีกเยอะๆด้วยครับ ...


ร่วมแสดงความคิดเห็น

[ความเห็นที่:  1] จากคุณ : สุวิทย์ เมื่อ 31/7/2550 16:24:24  IP: 203.113.61.36

พึ่งเข้ามาเจอครับ กำลังหาอยู่ เลย
สนใจที่จะเขียน
กำลังหาจุดเริ่มต้นครับ
(access พอได้ ) แต่ vb ยังอ่อน ต้องการคนแนะนำ ครับ)
ฝากเนื้อฝากตัวด้วยครับ

[ความเห็นที่:  2] จากคุณ : สุวิทย์ เมื่อ 31/7/2550 16:30:30  IP: 203.113.61.36

ผู้เขียนบทความนี้ได้รวบรวมทำเป็นเล่มขายหรือป่าวครับ อยากได้ไว้อ่านครับ
เอาแบบ มีคำอธิบายเหมือนในนี้ครับ 
เพราะส่วนมากอยากเขียนโปรแกรมฐานข้อมูลแบบนี้แต่ไปซื้อหนังสือที่อธิบายเยอะ ๆหน่อยไม่ค่อยมี 

[ความเห็นที่:  3] จากคุณ : Webmaster เมื่อ 3/8/2550 14:33:18  IP: 117.47.8.179

ยังครับยังไม่เคยมีแนวคิด
- จะทำออกขาย
- ไม่คิดทำระบบสมาชิกเพื่อ Log on เข้ามาให้เสียเวลา เมื่ออยากจะให้ ก็ให้ไปเลย ดีใจซ่ะอีกที่มีคนมาอ่านครับ ไม่งั้นเหงาแน่ๆ เอิ๊กๆๆๆๆ

แนวคิดที่อยาก (จะ) ทำ
- รวบรวมใหม่ไล่เป็นขั้นเป็นตอนที่ดีกว่านี้
- หานายทุนมาสนับสนุน อันนี้เคยทำมาแล้ว เหอๆๆ มันเห็นผมเป็นตัวแมลงสาบมาขายประกันน่ะซิ คือแต่ละที่ๆผมไปเสนอหน้าน่ะ เขาไม่รู้จักผมหรอก และไม่รู้ว่าจับฉ่ายแบบ AIO All In One เป็นอย่างไร จะใช้ประโยชน์อะไรจากผมได้บ้าง ... เหอๆๆๆๆ แจ่มจริงๆชีวิตนี้

ยินดีต้อนรับสู่โลกแห่ง Visual Basic 6.0 ครับ ... ผมยังเชื่อมั่นว่า VB6 ยังไม่ได้ตายง่ายๆหรอกครับพี่น้อง

[ความเห็นที่:  4] จากคุณ : สุวิทย์ เมื่อ 6/8/2550 14:28:51  IP: 203.113.61.39

ครับดีใจมากที่มาตอบ
  อธิบายตัวผมเองนิด ๆ นะครับ ผมไม่ได้จบ เกี่ยวกับคอมพิวเตอร์ ส่วนมากก็เป็นการใช้งาน word excel ธรรมดาจาก ร.ร.พาณิชย์ (ตอนนั้นเครื่อง ยังเป็น Dos อยู่เลย) จับผิดจับถูกศึกษาด้วยตนเอง (แล้วทำไมไม่ไปเรียนซะละ คำตอบคือมนุษเงินเดือน ทำงาน หาเช้ากินค่ำไม่มีเงินเหลือครับ ) ซือหนังสือ มาอ่านก็เหมือนตกเบ็ดครับ ถ้าเจอคนแต่งดี ๆ ก็เหมือนใส่เหยื่อที่ดี ได้ความรู้เป็นปลาตัวใหญ่ ไม่ก็ไม่ใช่ว่าจะตรงกับที่อยากรู้ทั้งหมด (ทุกคนที่เป็นผู้ศึกษาด้วยตนเองจะรู้) จะไปถามคนอื่นสิ (ก็น่าคิด ครับ แต่ ใครจะเป็นบ้าเป็นบอมาตอบให้คนได้ทุกคำถาม จิงปะ ) 
   ที่เขียน ๆ บ่น ๆ ไม่มีไรครับ เวปนี้ดูดีสำหรับผม อันที่จริงผมสนับสนุนทุกแนวความคิด ที่ว่าจะรวบรวมใหม่ครับ เพราะผมชอบทุก ๆ หัวข้อที่อธิบายในเวปนี้ เพราะมีตัวอย่างประกอบ ถึงไม่รู้โคตซะเป็นส่วนใหญ่ แต่มันพอจะเดาได้ว่ามันทำงานอะไร (ผู้เริ่มต้นครับ) มีคำอธิบาย ดูดี (มีฐานะ...) ไม่ใช้คำที่เป็นศัพท์คนชั้นสูงมีการศึกษาจบปริญญาเองถึงอ่านรู้เรื่อง (อันนี้ยอดครับ)

ถ้าผมเป็นคนที่มีความสามารถเหมือน webmaster ผมจะถ่ายทอดให้ทุก ๆ คนที่อยากศึกษาด้วยตนเองเหมือนผมในตอนนี้
ได้เข้าใจ ที่มาที่ไป จะตอบปัญหาที่ค้างคาใจ เหมือนที่มันคาใจผมอยู่ ตอนนี้ (อิอิ)

โลกยังรอคนที่มีความสามารถ และเสียสละตัวเอง มอบวิทยาทานให้กับคนที่ไม่รู้
ทั้งทางตรงและทางอ้อม 

คนจนที่ไม่มีทุนทรัพย์ที่จะไปซื้อหนังสือเล่มแพง ๆ เล่มโต ๆ แต่โปรงไปด้วยศัพท์ที่อ่านไม่รู้เรื่อง  ยังรอ บทความที่ตรงใจ
ใคร่รู้ 

สรุปแล้ว ผมยังรอท่านผู้ใจบุญบริจาคความรู้ผ่าน เวปนี้ ให้ทานมาเยอะ ๆ ครับ แล้วผลตอบแทนจะอยู่ที่ท่าน เปรียบเสมือน
ท่านทบทวน การเขียนโปรแกรมเริ่มต้น แต่เสียงมันดังจนคนข้างๆ ได้ยินไปด้วย 

ขอให้ webmaster จงเจริญ 

[ความเห็นที่:  5] จากคุณ : เด็กโง่ เมื่อ 6/8/2550 17:38:37  IP: 124.121.66.149

พี่ค่ะข้อมูลของพี่เปงประโยชน์แก่นู๋มากเลยค่ะ  แต่นู๋ทำสุ่มข้อสอบจากฐานข้อมูลไม่เปงอ่ะค่ะ 
ไม่ทราบว่าพี่พอจะบอกวิธีการสุ่มข้อสอบโดยมีการกำหนดน้ำหนักวัตถุประสงค์และสุ่มข้อสอบ
ตามบทนั้นอ่ะค่ะ  งง???????นู๋ทำไม่ได้อ่ะค่ะพี่ช่วยนู๋หน่อยนะค่ะ โปรเจ๊คอ่ะค่ะใกล้เวลาส่งแว้วยังทำไม่ได้เลยค่ะ เมล์

[ความเห็นที่:  6] จากคุณ : เล็กน้อย เมื่อ 10/8/2550 13:07:16  IP: 203.156.42.208

เว็บนี้น่ายกย่องคนที่พัฒนานะค่ะ นำแต่สิ่งที่ดี ๆ มาเสนอให้กับคนที่กำลังค้นหา อยากให้พี่พัฒนาสื่อนี้ต่อไป ถึงไม่มีใครสนับสนุน แต่ก็ขอให้พี่สู้ๆ นะคะจะเป็นกำลังใจให้

[ความเห็นที่:  7] จากคุณ : [vam] เมื่อ 13/8/2550 14:22:27  IP: 58.64.89.221

ต้องขอขอบคุณมากๆ ครับ ความรู้ที่พี่ให้นั้นเป็นประโยชน์ (ทางหางานและการเพิ่มความรู้ gg) สำหรับคนที่ต้องการเรียนรู้ VB เบื้องต้นกับการนำ VB ไปใช้รวมกับ Programs อื่นๆ ผมก้อคนหนึ่งแหละที่โง่ เรียกง่ายๆ อิอิ ที่ไม่ค่อยรู้เรื่อง VB เลย แต่สนใจครับอย่างเขียนเป็นครับ ก้อเลยลองเขียน VB ที่ใช้งานรวมกับ DB งับ (เริ่มเขียนก้อเล่นของยากเลย) ตอนแรกงงงับหาอ่าน VB เบื้องต้นแว้วก้อยังงง พอดีลอง Search ใหม่งับ เลยเจอของแปลกเลย อิอิอิ WEB พี่งัย 555+ ได้ความรู้มาเพิ่มยักในสมองงับ ตอนนี้สงสัยจะเพิ่มมากไป ปวดหัวแว้วงับ ยังงัยป๋มก้อจายเอามาดูดความรู้จากพี่ไปเพิ่มยักในสมองน้อยๆ ของป๋มต่อไปน้าครับ จะเป็นกำลังใจให้งับ ขอบคุณอีกครั้งงับ ^_^

[ความเห็นที่:  8] จากคุณ : lek เมื่อ 15/8/2550 18:11:05  IP: 125.26.231.253

ขอบคุณมากนะครับ ที่ทำให้เด็กๆ อย่างผมได้เรียนรู้วิธีการออกรายงาน เพราะบางที่ คนที่อยากทำเป็นมีเยอะแต่ไม่มีคนให้คำแนะนำ ครั้นจะไปหาหนังสืออ่าน ก็ไม่รู้ต้องเสียเงินเท่าไหร่ในการซื้อ(เพราะบางเล่มก็ดีบางเล่มก็ไม่ค่อยเข้าใจ บ้านผมมีประมาณ 5 เล่มอ่ะครับ เล่มล่ะประมาณ 300 - 400 ตังค์ก็ไม่ค่อยมี 555) ก็ขอบคุณจริงๆ ครับ อินเตอร์เน็ตมีทั้งคุณและโทษจริงๆ ครับ 

[ความเห็นที่:  9] จากคุณ : onpriya_comscience@yahoo.com เมื่อ 16/8/2550 11:55:22  IP: 203.113.39.9

คุณเจ๋งมากๆ

ขอบคุณมากที่สุดของที่สุด

[ความเห็นที่:  10] จากคุณ : [vam] เมื่อ 17/8/2550 3:25:11  IP: 58.64.89.33

พี่ครับผมอยากขอถามอะไรพี่หน่อยน่ะครับ Set หน้ากระดาษ Date Report งัยครับ เอาแบบว่าตั้งค่าหน้ากระดาษใช้คำสั่งอะไรบางครับ ทำงัยอ่ะ ไป search ใน internet ก้อแว้ว ลงทุนซื้อหนังสือมาอ่านก้อแว้ว (หมดไปประมาณ 7xx กว่าๆ) ยังหาคำสั่งที่ใช้ตั้งค่าหน้ากระดาษของ Date Report ไม่เจอเลยอ่ะครับ บอกประมาณว่า... เหมือนพี่เลย แค่บอกส่วนต่างๆ ของ Date Report กะ Properties อ่ะงับ นั่งหามา 2 วันแว้ว คือผมอยากได้หน้ากระดาษแบบแนวนอนอ่ะงับ (คิดอะไรไม่เหมือนชาวบ้านของเค้าทำมาดีอยู่แว้วยังเอาแก้อีก อิอิอิ) ช่วยด้วยนะงับ

[ความเห็นที่:  11] จากคุณ : ทองก้อน เมื่อ 22/8/2550 16:37:07

ขออภัยครับเข้ามาตอบให้ช้าไปหน่อย ... 

การแก้ไขง่ายมาก ... เวลาก่อนพิมพ์ทุกครั้งให้ไปที่ Settings --> Printers and Faxs เลือกเครื่องพิมพ์ที่ต้องการจากนั้นให้เปลี่ยนขนาดกระดาษ เช่น Letter หรือ Legal แทนครับ ... จบ

อันนี้ไม่ได้ตอบกวนน่ะ เรื่องจริงเลย หลายปีก่อนผมเคยลองทดสอบสั่งผ่าน API เพื่อทำการเปลี่ยนขนาดกระดาษ แต่มันก็ไม่ Work ครับ มาบัดนี้ ก็ลองค้นหาจากเว็บไซต์ เช่น ใช้การตั้งค่าแบบนี้

Printer.PaperSize = vbPRPSLetter หรือ vbPRPSLegal

มันก็ไม่เวิร์คอีกแหละ อันนี้สงสัยว่ามันไม่ได้ใช้งานกับ Data Report น่าจะเป็นการสั่งผ่านให้พิมพ์เอกสารโดยตรงน่ะครับ

นั่นคือ เล็กนิ่ม - MS มันจงใจทำ DataReport ออกมาแบบเสียไม่ได้ เพื่อให้ชาวบ้านชาวช่องเขารู้ว่าตูก็ทำรายงานได้ ... เท่านั้นเอง

ดังนั้นแล้วแนะนำให้ไปใช้ Third Party อย่าง Crystal Report หรือ Active Report แทนครับ ... ผมใช้ ActiveReport ครับ (http:://www.datadynamics.com) ไม่รู้เคยได้ติดชื่อหรือเปล่า เพราะว่าทั้งตำราอังกฤษหรือไทยก็มีแต่ Crystal Report ทั้งนั้น ... ก็จะอะไรเสียล่ะ อาจารย์ของอาจารย์ สอนอาจารย์มาก็ตัวนี้ พออาจารย์มาสอนเราก็ใช้ตัวนี้ พอเรามาเป็นอาจารย์ก็สอนตัวเนี่ยอีก ลูกศิษย์ของเราก็จะใช้ตัวนี้ตามไปอีก .... 55555 

แบบว่าผมไม่เคยเรียนมาน่ะ เลยไม่มีอาจารย์มาสอน Crystal Report ให้ ก้ากกกๆๆๆๆ ... ขอเป็นรอบหน้าครับ จะอธิบายการใช้งาน ActiveX ตัวนี้ รับรองเลยว่าหากคุณรู้ "How To" จะชอบมากๆๆๆๆๆๆๆๆๆ

[ความเห็นที่:  12] จากคุณ : Thongkorn เมื่อ 27/8/2550 13:42:58

ผมเองหงุดหงิด Crystal Report มานานมากแล้วตั้งแต่มันติดมากับ VB น่าจะรุ่น 4.6 มั้ง ก็เลยไม่ได้ใช้งานมัน แต่มาใช้งาน Data Report Designer ของค่าย Seagate อันเดียวกันนี่แหละครับ แต่คนก็ไม่ค่อยรู้จักอีก สงสัยว่าของแท้ๆที่มีลิขสิทธิ์คนเขาไม่ใช้งานกันมั้งครับ อิอิอิ ... อันนี้ไม่ได้รวยครับ ทางบริษัทฯเขาซื้อมาให้ใช้น่ะ ...

มาบัดนี้ .. เป็นฟรีแลนซ์แล้วกลายเป็นโปรแกรมเมอร์จนๆน่ะครับ ...  ก็เลยเพียรพยายามอุตส่าห์หาที่โหลดเจ้า Crystal Reports มาได้หลายรุ่นแล้ว ต้องขอเวลาทดสอบอีกสักระยะนึงก่อนน่ะครับผม ...

ดาวน์ครับดาวน์
Crystal Reports XI Release 2 Developer Edition
http://www.leehare.cn/read.php/5191.htm

เวอร์ชั่น 9.2/10.0/11.5
http://www.onlyblog.com/blog/bond/archives/2006/2507.html

รีบๆกันหน่อย เดี๋ยวมันหนีไปก่อนน่ะครับพี่น้อง ... เอิ๊กๆๆๆๆ

[ความเห็นที่:  13] จากคุณ : lucky เมื่อ 30/8/2550 14:55:38  IP: 58.10.24.193

รบกวนถามดู code ให้หน่อยครับ ถ้าผมต้องการให้ตัวเลข จำนวน, ราคา, รวมเงิน ชิดขาวและตรงกันจะทำยังไงครับ (ผมใช้ คำสั่ง With Print แล้วมัน Error เลยเขียนเต็มๆเลย - -'')

Private Sub CmdOk_Click()
Dim i As Integer
Dim j As Integer
    Printer.CurrentY = 200
    Printer.Print "บริษัท ทดลอง จำกัด"
    Printer.CurrentY = 400
    Printer.Print "เลขที่ xxx xxxxxxxxxxxxxxxxxx"
    Printer.CurrentY = 600
    Printer.Print "โทร. x-xxxx-xxxx"
    Printer.CurrentY = 1000
    Printer.Print "เลขที่บิล : " & frmDataEnv.LblBill.Caption
    Printer.CurrentY = 1000
    Printer.CurrentX = 2800
    Printer.Print "วันที่ : " & Date
    Printer.CurrentY = 1200
    Printer.Print "--------------------------------------------------------------------"
    Printer.CurrentY = 1400
    Printer.Print "รหัสสินค้า                   จำนวน       ราคา        จำนวนเงิน"
    Printer.CurrentY = 1600
    Printer.Print "--------------------------------------------------------------------"
        PRS.MoveFirst
        j = 1700
        For i = 1 To PRS.RecordCount
            j = j + 200
            Printer.CurrentY = j
            Printer.Print PRS.Fields(1)
            Printer.CurrentY = j
            Printer.CurrentX = 1800
            Printer.Print PRS.Fields(4)
            Printer.CurrentY = j
            Printer.CurrentX = 2500
            Printer.Print Format(PRS.Fields(5), "#,###,##0.00")
            Printer.CurrentY = j
            Printer.CurrentX = 3200
            Printer.Print Format(PRS.Fields(6), "#,###,##0.00")
            PRS.MoveNext
        Next i
        If PRS.EOF Then
            PRS.MoveFirst
            Printer.CurrentY = j + 200
            Printer.Print "--------------------------------------------------------------------"
            Printer.CurrentY = j + 600
            Printer.Print "มูลค่าสินค้ารวม"
            Printer.CurrentY = j + 600
            Printer.CurrentX = 2000
            Printer.Print frmDataEnv.Lbl1.Caption
            Printer.CurrentY = j + 600
            Printer.CurrentX = 3600
            Printer.Print "บาท"
            Printer.CurrentY = j + 800
            Printer.Print "ส่วนลดสมาชิก"
            Printer.CurrentY = j + 800
            Printer.CurrentX = 2000
            Printer.Print frmDataEnv.Lbl2.Caption
            Printer.CurrentY = j + 800
            Printer.CurrentX = 3600
            Printer.Print "บาท"
            Printer.CurrentY = j + 1000
            Printer.Print "มูลค่าสินค้าสุทธิ"
            Printer.CurrentY = j + 1000
            Printer.CurrentX = 2000
            Printer.Print frmDataEnv.Lbl3.Caption
            Printer.CurrentY = j + 1000
            Printer.CurrentX = 3600
            Printer.Print "บาท"
            Printer.CurrentY = j + 1200
            Printer.Print "เงินสดรับ"
            Printer.CurrentY = j + 1200
            Printer.CurrentX = 2000
            Printer.Print TxtCash.Text
            Printer.CurrentY = j + 1200
            Printer.CurrentX = 3600
            Printer.Print "บาท"
            Printer.CurrentY = j + 1400
            Printer.Print "เงินทอน"
            Printer.CurrentY = j + 1400
            Printer.CurrentX = 2000
            Printer.Print LblChange.Caption
            Printer.CurrentY = j + 1400
            Printer.CurrentX = 3600
            Printer.Print "บาท"
            Printer.CurrentY = j + 1800
            Printer.Print "ขอบพระคุณท่านที่มาใช้บริการ" & vbCrLf
            Printer.EndDoc
            Call CloseFrm
        End If
End Sub


------------------------------------------------
รายการ               จำนวน     ราคา      รวมเงิน
-------------------------------------------------
สินค้า1                       3    50.00     150.00
สินค้า2                       5      8.00       40.00
-------------------------------------------------
                            มูลค่าสินค้า         190.00
                            เงินสดรับ            200.00
                            เงินทอน               10.00

[ความเห็นที่:  14] จากคุณ : ทองก้อน เมื่อ 3/9/2550 13:07:45

โอ้โหครับพี่น้อง ... ทำไมไม่ใช้ 3rd Party Report Designer อย่างที่ผมแนะนำไปล่ะครับ มันง่ายกว่าน่ะ กำหนดขนาดกระดาษเองแบบ Custom ก็ได้ (แต่ก็ขึ้นกับรุ่นของเครื่องพิมพ์ที่ใช้งานด้วยครับ)

การสั่งพิมพ์ในลักษณะนี้ต้องคำนวณค่าตำแหน่งแบบ Dynamic ครับ ทั้งค่ากระดาษ ค่าตัวอักษร ความยาวที่ใช้ในการพิมพ์ และแน่นอนผมก็ขอไม่ทดสอบโค้ดจริงล่ะครับ มันใช้เวลานาน ไม่คุ้ม ... ลองดู Concept แล้วกันครับผม สมมุติผมสั่งผ่าน Picture Box แล้วกันจะได้มองภาพออกง่ายๆ

Printer.CurrentX = Picture1.Width - Picture1.TextWidth("ทดสอบการพิมพ์")

ลองดูครับ แบบลองใช้ Method --> TextWidth เข้าช่วยเอาน่ครับ ... ความหมาย

[ความเห็นที่:  15] จากคุณ : lucky เมื่อ 6/9/2550 10:53:52  IP: 58.10.24.48

ขอบคุณครับ แล้วผมจะลองดูครับ - -" (หัดใหม่อ่ะ ครับ)

[ความเห็นที่:  16] จากคุณ : Lucky เมื่อ 6/9/2550 10:56:35  IP: 58.10.24.48

อีกนิ๊สสสส นึ่ง ครับ
ไม่ทราบว่าเราสามารถเปลี่ยน Icon ที่ Compile เป็น EXE ได้มั้ยครับ

[ความเห็นที่:  17] จากคุณ : ทองก้อน เมื่อ 6/9/2550 12:21:03

ปกติทำไม่ได้ครับ เปลี่ยนได้เฉพาะตรง Short Cut หรือ ตัวไฟล์มันเองเท่านั้น เหตุผลคือมันเอาไอคอนที่กำหนดไว้ไปรวมไว้ในไฟล์ EXE เป็นที่เรียบร้อยแล้วนั่นเอง

ยกเว้น ... คุณสร้าง Class/หา ActiveX  เพิ่มเข้าไป เพื่อให้ผู้ใช้งานสามารถเปลี่ยนไอคอน เปลี่ยนรูปแบบ หรืออื่นๆได้ตามใจชอบ เช่น สไตล์หรือรูปแบบ (Theme) ต่างๆที่ปรากฏบน MS Windows Application นั่นเองไงครับ ... อยากเสียเวลาทำมั้ยล่ะ

[ความเห็นที่:  18] จากคุณ : lucky เมื่อ 11/9/2550 11:41:40  IP: 58.10.24.251

เจอปัญหาอีกแล้วคร๊าบบบบ.....
ผมทำตัว SetUp แล้วเอาไปลงที่เครื่อง User พอจะพิมพ์ รายงานมันฟ้องว่า (Ren-Time error 713) ผมใช้ Data Report
ไม่ทราบว่าจะแก้ยังไงครับ รบกวนท่านผู้รู้ด้วยครับ

[ความเห็นที่:  19] จากคุณ : ทองก้อน เมื่อ 11/9/2550 13:55:56

วันก่อนก็ตอบน้องคนนึงไปแล้วล่ะ ผมก็จำไม่ค่อยได้น่ะว่าต้อง Add File ของ Data Report ตัวไหนไปด้วยกับชุดติดตั้ง PDW ของ MS

ลองตัวนี้ก่อนน่ะครับ C:\Windows\System32\Msdbrptr.dll 

หากจำไม่ผิดมันต้องเพิ่มตรง ==> Included Files dialog box 

*** เว็บบอร์ดใกล้เรียบร้อยแล้วครับ กำลังให้พรรคพวกเพื่อนฝูงชาวเถื่อนๆทั้งหลายทดสอบ BOT อยู่ ***

[ความเห็นที่:  20] จากคุณ : lucky เมื่อ 12/9/2550 8:13:47  IP: 58.10.24.186

ใช้ได้แล้วครับ ขอบคุณพี่ทองก้อน มากครับ ^^"

[ความเห็นที่:  21] จากคุณ : lucky เมื่อ 12/9/2550 11:02:56  IP: 58.10.24.186

รบกวนถามอีกเรื่องพิมพ์รายงานครับ
ถ้าผมต้องการในกดปุ่ม cmd แล้วพิมพ์รายงานเลยโดยไม่ต้อง Preview ต้องใช้คำสั่งอะไรครับ

[ความเห็นที่:  22] จากคุณ : lucky เมื่อ 12/9/2550 11:02:58  IP: 58.10.24.186

รบกวนถามเรื่องพิมพ์รายงานครับ
ถ้าผมต้องการในกดปุ่ม cmd แล้วพิมพ์รายงานเลยโดยไม่ต้อง Preview ต้องใช้คำสั่งอะไรครับ

[ความเห็นที่:  23] จากคุณ : lucky เมื่อ 13/9/2550 9:08:11  IP: 58.10.24.86

ได้แล้วครับใช้คำสั่ง
ชื่อReport.PrintReport (เหอๆ ถามเองตอบเอง)

[ความเห็นที่:  24] จากคุณ : mayuree เมื่อ 2/11/2550 9:27:16  IP: 125.27.105.155

ถ้าจะเริ่มดูตั้งแต่ภาค ที่ 1 ได้มั๊ยค่ะ พอดีเพิ่งเข้ามาใหม่ค่ะ ขอคำแนะนำด้วยน่ะค่ะ

[ความเห็นที่:  25] จากคุณ : ทองก้อน เมื่อ 6/11/2550 14:45:17

เหอๆๆๆๆ ภาค 1 ไม่มีครับผม ... ตอนนี้จะออกภาคที่ 11/1-2 แล้วครับ

[ความเห็นที่:  26] จากคุณ : lukcy เมื่อ 7/11/2550 8:42:19  IP: 58.10.24.33

รอติดตามอยู่น่ะครับ

[ความเห็นที่:  27] จากคุณ : k_nadtapon@hotmail.com เมื่อ 7/11/2550 13:06:43  IP: 125.25.182.238

คือว่าถ้าผมจะใช้คำสั่ง printer.อะไรสักอย่างเนี้ย ผมควรจะเริ่มจาก . อะไรก่อนอะครับ
เพราะผมใช้VB5มานไม่มีdatareportครับ ช่วยบอกหน่อยครับว่า .ที่ตามหลังคำสั่งprinterเนี้ย
ใข้ทำอะไรบ้างและจะต้องกำหนดค่าเท่าไหร่ในแต่ละ . เพราะผมไม่มีmdacช่วยเลยงงมากไม่รู้จะต้ังค่ากระดาษต้องสั่งอะไรบ้าง ตอนนี้งมจนจมน้ำไปแล้วครับ ส่งมาทางเมลก็ได้ครับ หาในmdacไลบารี่ออนไลย์มานก็บอกอะไรก็ไม่รู้ ผมภาษาไม่แข็งแรงด้วย ช่วยทีนะครับ

[ความเห็นที่:  28] จากคุณ : lucky เมื่อ 7/11/2550 16:48:16  IP: 58.10.24.21

คห.27 ไม่ลองมาใช้ VB6 ดูละครับ

[ความเห็นที่:  29] จากคุณ : imag87@hotmail.com เมื่อ 7/11/2550 22:59:50  IP: 125.26.174.157

อยากได้การดึงรูปภาพด้วยอะครับรวมถึงการที่จะวางฐานข้อมูลที่มีรูปภาพด้วยครับกรุณาด้วยนะครับ

[ความเห็นที่:  30] จากคุณ : ทองก้อน เมื่อ 8/11/2550 16:16:44

แนะนำให้ไป Download MDAC 2.8 (5.3 MB) กับ Jet 4.0 SP8 ได้ที่
http://www.macropool.com/en/download/mdac.html
ง่ายกว่าเข้าไปที่ Microsoft โดยตรงครับผม

ส่วนที่ขอๆกันมา จะพยายามจัดให้ครับ ... พี่น้อง ... ไม่ไหวครับ ตอนนี้กิ๊กมันงอแงเหลือเกิน เหอๆๆๆๆๆๆๆๆๆๆ

[ความเห็นที่:  31] จากคุณ : dos_network เมื่อ 20/12/2550 19:56:38  IP: 202.151.183.70

ผมทำการออกรายงานด้วย Crystal Report ไว้ตัวนึง มีใครอยากได้บ้างยกมีขึ้น

[ความเห็นที่:  32] จากคุณ : ทองก้อน เมื่อ 21/12/2550 11:05:52

เอาขึ้นไปไว้ในบอร์ดได้เลยครับกระผม กล้าๆหน่อย ไม่ต้องอายครับ
อายครูไม่รู้วิชา อายภรรยาก็ไม่เห็น ... 555555555555555555555

รวมไปถึงท่านอื่นๆด้วยน่ะครับ ไม่ว่าจะขั้นไหน ขั้นเทพ ขั้นมาร ขั้นอนุบาลแมวเหมียว ใครมีผลงานอะไร ก็เอามาแสดง แบ่งปันความรู้ให้กับคนอื่นๆด้วยล่ะกัน ... หรือใครอยากจะเป็น Mod ให้เว็บผม ... เชิญติดต่อเข้ามาได้เลยครับพี่น้อง ยินดีเป็นอย่างยิ่ง

ผิด ถูก ดี ไม่ดี ไม่ใช่ประเด็น ... สาระสำคัญ คือ เมื่อไหร่เด็กไทยจะกล้าแสดงออกกันมากขึ้น ... เอ้อ อันนี้ไม่ได้ถึงความกล้าในการแก้ผ้าเต้นโชว์ผ่านเน้ตน่ะครับ 555555555

[ความเห็นที่:  33] จากคุณ : dos_network เมื่อ 21/12/2550 13:01:37  IP: 202.151.183.70

เดี๋ยวผมขอทำแบบเบสิกไปโพสไว้ที่บอร์ดดีกว่า  ย้ำนะครับว่าเบสิกกกๆๆๆ

[ความเห็นที่:  34] จากคุณ : จับฉ่ายคอมพิวเตอร์ เมื่อ 21/12/2550 13:36:17  IP: 61.91.165.22

ยังมีคนที่ Basic กว่าอีกเยอะน่ะ ... มั่นใจหน่อย …

[ความเห็นที่:  35] จากคุณ : dos_network เมื่อ 21/12/2550 15:41:12  IP: 202.151.183.70

แต่ก่อนผมเขียนโปรแกรมใช้โค้ดแบบที่เคยเรียนมา มันยืดยุ่นได้น้อยมาก กว่าจะได้ผลงานแต่ละที่โค้ดยาวเป็นกิโล(เมตร) (หรือเราคิดสั้นไปเองก็ไม่รู้) ผมหันมาเปลี่ยนใช้แบบที่คุณพี่ทองก้อน ทองคำ พาทำ เออ! เวิร์กดีแฮะ(พอดีเรามีพื้นฐานการเขียนโปรแกรมด้วย VB อยู่แล้วเลยง่ายหน่อย) ที่บริษัทลูกพี่พาใช้ Crystal Report ทำรายงานไอ้เราก็ไม่กล้าจะถามมาก (เราก็เพิ่งเรียนจบประสบการณ์ในสนามรบ(เขียนโปรแกรม)น้อยอยู่) ว่ามันใช้กันยังไงเรียนก็ไม่ได้เรียนมา ณ วันนี้ผมทำได้เพราะอาจารย์ใหญ่ช่วยแท้ๆ (google.com) + กับโค้ดเก่าๆที่เขาเขียนทิ้งไว้เอามาแกะเอาแต่ก็ยังไม่ถึงขั้นเซียนหรอก ยังเป็นดักแด้อยู่เลย เข้ามาแชร์ความรู้กันนะครับ เดี๋ยวรอแต่คุณพี่ทองก้อนป้อนความรู้ให้อย่างเดี๋ยวไม่ไหว บางวันแกเมาค้างมาสอนเราผิดๆ ทำไงเนี้ย... อิอิอิ เราหันมาสอนกันเองจะเป็นไรไป เดี๋ยวจะเปิดเว็บมาสู้กับ g2g.com ชื่อ R&B.com คุณพี่ทองก้อนจะว่าไรมั๊ยน้อ... 5555+++ หุหุหุ++  เรื่องเมาเราเข้าใจกัน

[ความเห็นที่:  36] จากคุณ : dos_network เมื่อ 21/12/2550 15:45:31  IP: 202.151.183.70

พิมพ์ชื่อ g2g.com ผิด แก้ไขนะพี่น้อง g2gnet.com ถึงถูกจ้า...

[ความเห็นที่:  37] จากคุณ : ทองก้อน เมื่อ 22/12/2550 13:28:46

เอ้อ ... คือช่วงนี้ผม "กินเจ" น่ะครับผม ... แบบว่า เจ แอนด์ บี น่ะครับ หร่อยดี ไม่แรงมากนัก บางวันอาจจะต้องเสริม "วิตามินบี - B" บ้าง (Black Label) ก้ากกกกกกกกกกกกกกกกกกกกกกกกๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆ

[ความเห็นที่:  38] จากคุณ : chayakrit เมื่อ 31/1/2551 9:48:01  IP: 61.91.225.238

ผมอยากทราบว่า ถ้าผมจะพิมพ์รายงานเป็นแนวนอน แล้วผมเปลี่ยนคำสั่ง
 .Orientation = rptOrientPortrait
มาเป็น  .Orientation = rptOrientLandscape แทน
 ไม่ได้มันขึ้นฟ้องว่า Compile Error : Variable not defined
รบกวนช่วยแนะนำหน่อยครับ

[ความเห็นที่:  39] จากคุณ : ทองก้อน เมื่อ 31/1/2551 16:26:53

ผมขอเสนอให้หาเมีย เอ๊ย ทางเลือกใหม่ ด้วยการใช้งาน Active Report ลองดูครับ
http://www.g2gnet.com/news/activenews_view.asp?articleID=86

แล้วจะติดใจ ... เอิ๊กๆๆๆๆ

[ความเห็นที่:  40] จากคุณ : chayakrit เมื่อ 31/1/2551 17:04:40  IP: 61.91.225.238

ขอบคุณครับ จะลองไปเล่นดูครับ

[ความเห็นที่:  41] จากคุณ : THE K เมื่อ 3/6/2551 11:39:31  IP: 124.121.195.143

ผมเพิ่งหัดเขียนครับ
ซื้อหนังสือมาเยอะ
แต่ไม่ค่อยได้เรื่องสักเท่าไร
มาเจอเว็บนี้ครับ
ทำให้ผมเข้าใจมากขึ้น ประยุกต์ใช้ได้เพิ่มขึ้นด้วยครับ
ขอบคุณ webmaster มาก ๆ ครับ

[ความเห็นที่:  42] จากคุณ : kwan_tae เมื่อ 6/3/2552 10:38:02  IP: 203.155.165.25

อ่านเวบนี้แล้วรู้สึกดี ถึงแม้ตัวเองจะเขียนโปรแกรมไม่เป็น แต่บทความถ่ายทอดเข้าใจง่ายค่ะ รู้สึกปลื้ม อึ้ง ทึ่ง (เสียวไหม ก้อไม่รู้) กับอุดมคติของทีมงาน และผู้เขียนบทความ
เป็นกำลังใจในการเขียนต่อไปนะค่ะ สู้เว้ย!!!

[ความเห็นที่:  43] จากคุณ : โยโย่ เมื่อ 13/3/2552 14:56:30  IP: 58.137.36.230

มันเกิดเออเรอ อะครับตอนที่กดสั่งพิมอะครับ 
มันจะเออเรอตรองที่ปั่งพิมเลยอะครับ ตรงตำแหน่งนี้อะครับ
  ' ตั้งค่าระยะการพิมพ์แบบ Run-Time
    With rptCustomer<----ตรงนี้อะ
        .LeftMargin = 1440
        .TopMargin = 1440
        ' กระดาษ A4 (210 mm x 297 mm หรือ 11907 twips x 16840 twips).
        ' หน่วยการวัด 1440 Twip = 1 นิ้ว หรือ 25.4 มิลลิเมตร (โดยประมาณ)
        ' หรือ 567 twips = 1 cm.
        ' สมมุติน่ะครับ สมมุติ ต้องการหน่วยวัดเป็นมิลลิเมตร
        ' ให้ขอบขวา 15 มม. ก็กลับสูตรบัญญัติไตรยางค์ดูครับพี่น้อง ...
        .RightMargin = (1440 * 15) / 25.4
ช่วยตอบหน่อยครับ อธิบายให้ด้วยนะครับ
จะทำความเข้าใจเพราะมะมีหนังสือ คริคริๆ

[ความเห็นที่:  44] จากคุณ : saksit เมื่อ 21/3/2552 11:19:04  IP: 124.157.136.43

เป็นตัวอย่างที่ดีมากครับ
ผมมีปัญหาถามคุณ Webmaster ครับ คือผมอยากจะเช็คสถานะการสั่ง Print จากโปรแกรม office ต่างๆ ครับ
ืคือ เมื่อทำการสั่ง print ผมจะให้ logon ก่อนครับแล้วถึงจะให้ propertise ของ printer ขึ้นมาครับ
VB มีคำสั่งสำหรับตรวจเช็คสถานะลักษณะนี้ไหมครับ

[ความเห็นที่:  45] จากคุณ : ก้อย เมื่อ 9/2/2553 10:06:35  IP: 112.142.9.243

รบกวนช่วยทำให้ดูทีนะค่ะ

พอดีพึ่งหัดเรียน vb นะค่ะ


อาจารย์ให้ทำ รูปที่ 1 .ให้โชว์แบบนี้  .*
      **
      ***
      ****    ให้โชว์ที่ label อ่ะค่ะ โดยการใช้ For  และ  Do while



ขอบคุณล่วงหน้าค่ะ  


 
 นี้เมล์ก้อยค่ะ  QtyKjung@hotmail.com

[ความเห็นที่:  46] จากคุณ : เอ/เชียงใหม่ เมื่อ 14/3/2553 18:41:26  IP: 119.42.76.79

รวมบทความ VB6 เป็นเล่มไว้อ่านแล้วครับ T-T เพราะใช้งานได้จริงๆ (เอาไปทำมาหากินได้) เหอะๆๆๆ ใช้สอนก็ดีไม่น้อยเลยสำหรับครูมือใหม่หัดสอนอย่างผม 

[ความเห็นที่:  47] จากคุณ : เด็กดื้อ เมื่อ 11/9/2553 17:36:49  IP: 124.157.150.218

กลุ้มมากๆๆค่ะคุณครูให้หาตัวอย่างโจทย์วิชวล พร้อมผังงาน code พูดมารวมๆกันคือโปรแกรมนั่นเอง แต่หนูหาไม่ได้..ช่วยทำให้หน่อย...codeต้องใช้ถึง50บรรทัด...กลุ้ม

[ความเห็นที่:  48] จากคุณ : กฤษดา เมื่อ 25/11/2553 23:53:02  IP: 114.128.212.215

 **ผมใช้ VB6.0 ฐานข้อมูล Access 2007 แล้วสามารถ สั่งพิมพ์รายงานได้ไม่อะคับ 
     ผมทำโปรเจคอยู่คับ ต้องการผู้เชียวด้าน VB คับ
     แอดมาคับ เพื่อมีค่าตอบแทน hikidza_hikoo@hotmail.com

[ความเห็นที่:  49] จากคุณ : dos_network เมื่อ 26/11/2553 8:14:21  IP: 118.175.90.37

ใช้อะไรทำฐานข้อมูลก็ได้ทั้งนั้นครับ
อยู่ที่ว่าจะเลือกใช้ตัวไหนเท่านั้นครับ ไม่ว่าจะเป็น Data Report , Active Report (ดูตัวอย่างในเว็บนี้ได้ครับ) , Crystal Report (ตัวนี้ผมใช้อยู่ครับ) และอื่นๆอีกมากมายครับ


ก่อนการคลิ๊กโพสต์ข้อความ ขอความกรุณาใช้ถ้อยคำที่สุภาพด้วยครับ เว็บไซต์แห่งนี้เป็นแหล่งเผยแพร่ความรู้ ดังนั้นสำหรับท่านที่พยายามจะป่วนเว็บไซต์ หากท่านเป็น "คนไทย" เช่นเดียวกันกับผม ก็ขอความกรุณาได้โปรดเห็นใจ "คนไทย" อีกจำนวนไม่น้อย ที่เข้ามาขอความช่วยเหลือ จากเว็บไซต์ของผมด้วยน่ะครับ และหากท่านใดไม่เข้าใจในตรงจุดไหน ก็ขอให้ระบุสิ่งที่อยากจะถามออกมา บทความของผมแทบทั้งหมดต้องอาศัยทักษะการปฏิบัติเป็นหลัก ดังนั้นขอให้ดู และ ทดสอบจากโค้ดโปรแกรมประกอบตามไปด้วย
IP Address: 54.166.95.146
ชื่อของคุณ:

ข้อคิดเห็น:

3 + 1 = ?  (กรุณาป้อนคำตอบลงในช่องด้านล่างให้เป็น ภาษาไทย ตามผลบวกของตัวเลขให้ถูกต้องก่อนด้วยน่ะครับ เช่น ศูนย์)
  


จี ทู จี เน็ต ดอต คอม - g2gNet Dot Com
เลขทะเบียนพาณิชย์อิเล็กทรอนิกส์ 0407314800231
Copyright © 2005 g2gNet.Com All rights reserved.
Email: thongkorn@hotmail.com หรือ โทร. 08-6862-6560