 |
|
รบกวนเพื่อน ๆ พี่ ๆ อีกครั้งครับเกี่ยวกับ vb ช่วยผมหน่อยนะครับ |
|
 |
|
|
 |
 |
|
Code (VB.NET)
sql = "select substring(Brand_id,2,4) as g_ID_AUTO from Product Order By Brand_id"
|
ประวัติการแก้ไข 2011-12-16 23:29:18
 |
 |
 |
 |
Date :
2011-12-16 23:21:15 |
By :
kerb |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ยังไม่ได้เลยครับ คือฐานข้อมูลของผมก็คือยี่ห้อหนึ่งก็จะมีสินค้าไม่เท่ากัน เช่น Mitsushita อาจจะมี 10 รายการ เป็นพัดลมบ้าง เครื่องปรับอากาศบ้าง คละเคล้ากันไป ซึ่งเวลาแสดงข้อมูลอยากให้แสดงโดยเอาช่องสุดท้ายในDayaGridView1คือยี่ห้อสินค้าเป็นหลัก ให้เรียงลงไปตามยี่ห้อจนครบ คือไม่สลับกัน Toshiba ก็ Toshiba ให้ครบไปเลย จึงจะเป็นยี่ห้ออื่นๆ ตามลำดับลงไป ซึ่งถ้าทำได้ ที่ช่องแรกก็คือ รหัสสินค้า จะแสดงโดยไม่เรียง P0001 P0002 P0003 P0004 ตามรูป เพราะถ้ายังเรียงตามนี้ แสดงว่ามันยังเอารหัสสินค้าเป็นหลักอยู่ จะแก้โค๊ดอย่างไรดีครับ
Code (VB.NET)
Sub ID_AUTO()
Dim sql As String = ""
Dim conn2 As New SqlConnection _
(M_ConnStr.strConn)
Dim Command_Adp2 As SqlCommand
Dim Sql_Reader As SqlDataReader
sql = "select max(substring(Brand_id,2,4)) as g_ID_AUTO from Product"
โค๊ดข้างล่าง มันสั่งให้แสดง id ที่รหัสสินค้าใช่มั้ยครับ ซึ่งจริงๆแล้วถ้าอยากให้แสดงโดยเอายี่ห้อเป็นหลัก ซึ่งยี่ห้อที่แสดงในDataGridView1มันอยู่ช่องสุดท้ายเลย ในช่องแรกที่แสดงรหัสสินค้า มันไม่ควรมีโค๊ดพวกนนี้กำกับถูกมั้ยครับ จะแก้โค๊ดอย่างไร ให้ รหัสสินค้าที่แสดง มันแสดงโดยยึดเอายี่ห้อเป็นหลัก
Code (VB.NET)
conn2.Open()
Command_Adp2 = New SqlCommand(sql, conn2)
Sql_Reader = Command_Adp2.ExecuteReader()
If Sql_Reader.Read() Then
If Sql_Reader.Item("g_ID_AUTO").ToString() <> "" Then
txtid.Text = "B" & Format((CDbl(Sql_Reader.Item("g_ID_AUTO").ToString()) + 1), "0000")
Else
txtid.Text = "B0001"
End If
Else
txtid.Text = "B0001"
End If
End Sub

|
 |
 |
 |
 |
Date :
2011-12-17 11:00:23 |
By :
off |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตั้งรหัสเอาจาก 2 ตัวแรกของ brand_name ดีกว่าค่ะ เช่น product ของ toshiba รหัสก้อเป็น TO001 ถ้าเป็น Sharp ก้อ SH001
substring 2 ตัวแรกใน dropdonw ยี่ห้อ จะได้
ประกาศตัวแปร dim prifix as string =comboboxBrand.selectedItem.Text.substring(0,2) จะได้
TO
MI
LG
ขั้นตอนต่อมาก็ select ตามนี้ค่ะ
Code (VB.NET)
sql = "select max(substring(Product_ID,2,4)) as g_ID_AUTO from Product where brand_id=comboboxBrand.selectedValue
txtid.Text = prifix & Format((CDbl(Sql_Reader.Item("g_ID_AUTO").ToString()) + 1), "0000")
Else
txtid.Text = prifix & "0001"
ประมาณนี้แหละค่ะ โค้ดเขียนสดน่ะค่ะบางทีเอาไปวางเลยอาจไม่ได้อาจต้องปรับแก้แต่ concept ก็ประมาณนี้ค่ะ
|
ประวัติการแก้ไข 2011-12-17 11:42:18 2011-12-17 11:46:38 2011-12-17 11:48:14 2011-12-17 11:48:34 2011-12-17 12:11:42 2011-12-17 12:14:15 2011-12-19 11:18:04
 |
 |
 |
 |
Date :
2011-12-17 11:41:22 |
By :
bangbang111 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เช็คแล้วข้อมูลยี่ห้อไม่ซ้ำนะครับ ประมาณว่า สินค้าหนึ่งยี่ห้อมีหลายประเภท
ถ้าไม่เปลี่ยนรหัสสินค้า แต่จะให้แสดงข้อมูลโดยเอายี่ห้อ หรือประเภทเป็นหลัก สามารถทำได้มั้ยครับ ขอแนวทางหน่อย เช่น ถ้าจะเปลี่ยนจาก Pro_id เป็น Brand_name แล้วจะปรับโค๊ดอย่างไร ไอดี ออโต้ ผมไม่เข้าใจเลยจริงๆ
Code (VB.NET)
Sub ID_AUTO()
Dim sql As String = ""
Dim conn2 As New SqlConnection _
(M_ConnStr.strConn)
Dim Command_Adp2 As SqlCommand
Dim Sql_Reader As SqlDataReader
sql = "select max(substring(Brand_name,2,4)) as g_ID_AUTO from Brand" <<Brand_name from Brand ถูกมั้ยครับ
conn2.Open()
Command_Adp2 = New SqlCommand(sql, conn2)
Sql_Reader = Command_Adp2.ExecuteReader()
If Sql_Reader.Read() Then
If Sql_Reader.Item("g_ID_AUTO").ToString() <> "" Then
txtid.Text = "P" & Format((CDbl(Sql_Reader.Item("g_ID_AUTO").ToString()) + 1), "0000") บรรทัดนี้แก้ยังไง
Else
txtid.Text = "P0001" บรรทัดนี้แก้ยังไง
End If
Else
txtid.Text = "P0001" สามบรรทัดนี้แก้ยังไง ในเมื่อไม่ได้ให้มันรันจาก id แต่รันจาก Brand_name
End If
End Sub
ผู้รู้ช่วยทีครับ ขอบคุณครับ
|
 |
 |
 |
 |
Date :
2011-12-18 12:03:27 |
By :
off |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ต้องตัดสองตัวแรกจาก combobox ค่ะ ไม่ได้ดึงจาก table brand ค่ะ ดึงจาก product นั่นแหละ แต่ต้อง where ด้วยค่ะ ลองทำตามที่ดิฉันบอกไว้ด้านบนน่ะค่ะ ถ้าไม่ได้ตรงไหน จะมาตอบให้ค่ะ
|
 |
 |
 |
 |
Date :
2011-12-19 11:17:04 |
By :
bangbang111 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอตัวอย่างโค๊ดได้มั้ยครับ ผมมือใหม่(มาก)จริงๆครับ ขอบคุณครับ
|
 |
 |
 |
 |
Date :
2011-12-19 12:20:56 |
By :
off |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตัวอย่างโค้ดที่คำตอบของ No. 3 ค่ะ
|
 |
 |
 |
 |
Date :
2011-12-19 12:22:59 |
By :
bangbang111 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คือตอนนี้ผมทำโปรเจคส่งอาจารย์อ่ะครับ ถ้าผมเปลี่ยนไอดี เป็น TO001 SH001 และอื่น ๆ โปรแกรมแสดงแบบที่ต้องการ คือ เรียงจากยี่ห้อ ซึ่งพอเสร็จจากตรงนี้ เชื่อเหลือเกินว่า อาจารย์ของผมนั้น ก็ต้องให้ผมเปลี่ยนเป็นเรียงจาก ประเภท เพื่อลองภูมิของผมอะไรประมาณนี้ ซึ่งถ้าเป็นอย่างนั้น ผมก็ต้องมานั่งเปลี่ยนไอดีใหม่ ที่อ้างอืงถึงประเภท แล้วสินค้าในสตอกมีเป็นร้อยรายการ ความต้องการของผม คือให้ไอดี หรือรหัสสินค้าที่ผมเซ็ทไว้ตอนนี้ มันเป็นแบบนี้ต่อไป แต่อยากให้สามารถเซ็ท หรือ ซอทโค๊ด ได้ว่า เราจะเอาอะไรเป็นหลัก ที่จะแสดงใน Datagridview โดยที่ไม่ต้องไปปรับเปลี่ยนรหัสสินค้า (Pro_id) ที่มันเป็นอยู่ ณ ขณะนี้อ่ะครับ แต่ยังไงก็ขอบคุณมาก ๆ นะครับ ผมคิดว่าคงไม่มีวิธี หรือผมอาจเป็นมือใหม่เกินไป พรุ่งนี้ผมต้องส่งงาน เดี๋ยวไปลุยเอาข้างหน้าละกัน ขอบคุณทุกคนมาก ๆ ครับ
|
 |
 |
 |
 |
Date :
2011-12-19 13:32:09 |
By :
off |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองดูประมาณนี้
strSQL = "SELECT * FROM Product order by ยี่ห้อสินค้า asc,รหัสสินค้า asc"
|
 |
 |
 |
 |
Date :
2011-12-19 14:33:54 |
By :
edong |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
กำหนด Property "Sort" ของ BindingSource ที่ผูกกับ DataGridView นี้
เป็น "ยี่ห้อสินค้า"
|
 |
 |
 |
 |
Date :
2011-12-19 15:29:59 |
By :
watcharop |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
No.11 ที่ตอบมาผมว่าใช่เลยครับ แต่ทำยังไงครับ ขอแนวทางหน่อยครับ ผมมือใหม่จริงๆ ขอเป็นรูปตัวอย่างได้ไหมครับ
|
 |
 |
 |
 |
Date :
2011-12-20 11:26:55 |
By :
off |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ภาพตามสั่ง

|
 |
 |
 |
 |
Date :
2011-12-20 12:33:46 |
By :
watcharop |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|