บวกเลขใบสั่งงาน ผมทำProject ส่งอาจารย์เกี่ยวกับใบสั่งงานของแต่ละแผนก โดยให้เลขใบสั่งงานบวกกันเองขึ้น
ใช้วิธีการตัดสตริงและก็เชื่อมสตริงครับผม
อย่างข้อมูเป็น W119648002 เราจะตัดให้เป็นดังนี้
tmpStr = left("W119648002",1) ) 'เป็นการตัดเอาสตริงทางซ้ายมา 1 ตัวอักษร
tmpNum = right("W119648002",9) 'เป็นการตัดเอาสตริงทางขวามา 9 ตัวอักษร
tmpAdd = tmpNum + 1 'เพิ่มค่าให้อีก 1 จะได้ 119648003
ทีนี้เป็นการรวมสตริง
เลขที่ใบสั่งงาน = tmpStr&tmpAdd 'จะได้ W119648003
ประมาณนี้แหละมั้ง ไอ้ผมมันก็แก่แล้วอะนะ ไม่ค่อยจะแม่นเท่าไร
Date :
6 ก.ค. 2548 16:19:01
By :
นายกระจอก
ไม่ไหวพี่ลองทำแล้วเป็นครึ่งคืนไม่ได้ครับคือไม่ค่อยเข้าใจครับพี่ช่วยผมหน่อยนะครับขอความกรุณาครับ Code ที่ใช้ในส่วนรับข้อมูลย่อๆนะครับเป็นดังนี้
<%
Set Conn=Server.Createobject("ADODB.Connection")
Conn.Provider="Microsoft.jet.OLEDB.4.0"
Conn.Open server.MapPath("Main_database.mdb")
'หรือจะใช้เป็น Conn.Open "database","",""<br>
sql ="Select * From MainDATA where ONO='"&Request.Form("ONO")&"'"
Set RS =Server.CreateObject("ADODB.Recordset")
RS.open Sql,Conn,1,3
if NOT(RS.EOF) then
response.write("เลขใบสั่งงานนี้มีอยู่แล้วให้ตรวจสอบใหม่")
else
Rs.AddNew
Rs("ONO") = Request.Form("ONO")
Rs("JNO") = Request.Form("JNO")
Rs.Update
Conn.Close
response.write("เพิ่มข้อมูลเรียบร้อยแล้ว")
end if
%>
----------------
ONO คือ เลขใบสั่งงาน รูปแบบในฟิวท์ฐานข้อมูลเป็นText
JNO คือ เลขใบสั่งงานภายใน
ขอบคุณพี่มากๆครับที่ช่วยตอบ
Date :
7 ก.ค. 2548 10:15:25
By :
เทคนิคลำปาง
ขอตอบแบบย่อ ๆ แล้วกันนะ
ขั้นแรกเลยอย่างที่ผมเคยทำนะ คือ
คิวรี่ข้อมูลจากตาราง MainDATA มาให้หมดก่อนโดยให้เรียงลำดับจากน้อยไปหามาก (ฟิลด์ ONO)
ดูโค๊ดเลยดีกว่านะ
เราไม่ต้องรับค่าของ ONO มาจากฟอร์ม
<%
Set Conn=Server.Createobject("ADODB.Connection")
Conn.Provider="Microsoft.jet.OLEDB.4.0"
Conn.Open server.MapPath("Main_database.mdb")
'หรือจะใช้เป็น Conn.Open "database","",""<br>
sqlquery ="Select * From MainDATA order by ONO"
Set RSquery =Server.CreateObject("ADODB.Recordset")
RSquery.open Sqlquery,Conn,1,3
if RSquery.EOF or rsquery.bof then
Rsquery.AddNew
Rsquery("ONO") = "W119648002"
Rsquery("JNO") = Request.Form("JNO")
Rsquery.Update
Conn.Close
response.write("เพิ่มข้อมูลเรียบร้อยแล้ว")
else
rsquery.movelast 'เลื่อนไปยังเรคอร์ดสุดท้ายอะนะ เพราะว่าเราจะเอาค่าของฟิลด์ ONO ล่าสุดมาบวกเพิ่มอีก 1
tmpStr = Left(rsquery("ONO"),1) 'ตัดเอาเฉพาะตัว W มา
tmpNum = Right(rsquery("ONO"),9)
tmpAdd = tmpStr & tmpNum + 1 'จะได้ค่าเลขที่ใบสั่งงานเพิ่มขึ้นมาอีก 1
Rsquery.AddNew
Rsquery("ONO") = tmpAdd
Rsquery("JNO") = Request.Form("JNO")
Rsquery.Update
Conn.Close
response.write("เพิ่มข้อมูลเรียบร้อยแล้ว")
end if
%>
ประมาณนี้แหละมั้ง
Date :
7 ก.ค. 2548 16:46:29
By :
นายกระจอก
ได้แล้วครับขอบคุณมากๆครับคิดว่าคงเป็นประโยชน์แก่เพื่อนสมาชิกครับ
ขอบคุณครับ.... วีรชัย
Date :
8 ก.ค. 2548 13:12:43
By :
MMCMWS
ถามอีกนิดครับถ้าเราจะลดตัวเลขลงจาก W119648001 ให้เหลือ W48001 เลยต้องทำไงตรับหรือว่ามันอยู่ที่เลขใบสั่งงานล่าสุดว่าเป็นเลขอะไรในฐานข็อมูล
ขอบคุณครับ
Date :
9 ก.ค. 2548 11:15:52
By :
MMCMWS
Load balance : Server 03