 |
|
Auto Number เพิ่มรหัสตั้งแต่ 11 ขึ้นไปเพิ่มไม่ได้ช่วยอีกทีท่านเทพ [vb.net] |
|
 |
|
|
 |
 |
|
ใช้ Auto_Number หรือเปล่าครับ 
|
 |
 |
 |
 |
Date :
2010-11-27 18:13:25 |
By :
webmaster |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองเอาชุดนี้ไปลองดู เป็นส่วนของการ Running Number
With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With
Dim MaxID As Integer
sqlCheckNumber = "SELECT ISNULL(MAX(Comment_ID),0) FROM Comment"
'ใช้บรรทัดนี้แล้ว 3 บรรทัดก่อนหน้านี้ไม่ต้องใช้แล้ว
ComEdit = New OleDbCommand(sqlCheckNumber, Conn)
ใส่ Try ตรงนี้ด้วยน่าจะดี
MaxID = ComEdit.ExecuteScalar()
tmpNumber = (MaxID + 1).tostring("0000")
|
 |
 |
 |
 |
Date :
2010-11-27 20:27:10 |
By :
base3000 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ในเมื่อคุณใช้วิธี ดึงเอาค่า max ของ id แล้วบวกเพิ่มเข้าไป แล้วในกรณีที่มีการลบค่า max ออก
ฉะนั้นค่า max ในฐานข้อมูลจะเป็น max-1 จากนั้นพอบวกเข้าไปจะเป็น max เช่นเดิม ว่ากันตาม logic มันก็ถูกนี่คะ
แต่ถ้าอยากได้ค่า max ที่คล้ายกับการ autorun คือบวกเพิ่มไปเรื่อยๆจนถึงค่าประมาณว่าขอบเขตหรือ overflow
แล้วจะ reset เป็น 1 ใหม่ อันนี้คุฯต้องย้ายการเก็บค่า counter ของ ตารางนั้นไว้อีกที่แล้วค่ะ
จะเป็น อีกตารางหรือจะเก็บใน text file ยังไงก็ได้ เพื่อป้องกันการ update delete จะมีผลต่อตัว counter
คือ เมื่อคุณต้องการค่า id คุณก้อไปอ่านเอาจาก counter ที่แยกเก็บจากนั้นก้อ +1 แล้ว update counter ไป
ทีนี้ถึงคุณจะลบข้อมูลในตารางยังไง ค่า counter ก็ไม่มีอะไรไม่กระทบแล้วค่ะ
|
 |
 |
 |
 |
Date :
2010-11-27 23:32:33 |
By :
blurEyes |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณคับสหรับทุกคำตอบ จะลองทำดูนะครับ Autorun_Number ตามที่แนะนำนะคับ
แต่ลองมาหลาย ๆ อย่างละ มันไม่ไปสักที ไ่ม่เหมือน vb ธรรมดาเลย ทำง่ายก่่านี้อีก
แต่ก้อขอบคุณคับทำไป เดียวก้อคงได้
|
 |
 |
 |
 |
Date :
2010-11-29 08:08:23 |
By :
angelrings0 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
กำหนดเป็น auto increament ง่ายกว่า vb ธรรมดาตั้งเยอะ
|
 |
 |
 |
 |
Date :
2010-11-29 09:05:05 |
By :
ตังค์แมน |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ให้ ID เป็น Auro Increament
ถ้าทำให้ sql statement
Code (VB.NET)
SELECT RIGHT('000000' + CONVERT(nvarchar, [ID]), 6) AS [RunningID] FROM [YouTable]
ถ้าทำให้ vb.net code
Code (VB.NET)
Dim RunningID As String = dataTable.Rows(0)("ID").ToString("000000")
'หมายเหตุ: query id มาใส่ datatable
ปล. vb6 ก็มือใหม่ใช่ไหม??
|
 |
 |
 |
 |
Date :
2010-11-29 10:26:33 |
By :
ตังค์แมน |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เลือกเอาแบบใดแบบหนึ่งนะ
แก้ "ถ้าทำให้" เป็น "ถ้าทำใน" ด้วย
|
 |
 |
 |
 |
Date :
2010-11-29 10:30:31 |
By :
ตังค์แมน |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มือใหม่ครับ ทำมา 3 เดือน พยายามสุด ๆ คับตอนนี้ -*- ทำอย่างอื่นเสร็จหมดแล้ว เหลือแต่ Auto number ครับ
ตัวโปรแกรมไม่ต่างจาก vb 6 สักเท่าไหร่ แต่งง Auto number ไม่ได้ ไม่เข้าใจ เลยเอา Code มาให้ดู เป็นการ Save ลง
Data access 2003 หรือ 2007 ได้แล้วแต่ละเปิดใช้ตัวไหน
ในฐานข้อมูลมี 1 ตาราง ชื่อ Comment ใน ตางรางประกอบด้วย ฟิวล์ Comment_ID , Comment_Comment_Title
แค่ 2 ตัวนี้ก้อทำ Auto number ไม่ได้แล้ว ช่วยดูให้หน่อยเป็นงง ที่แนะนำมาทำหมดแล้ว แต่พอกด add ค่าเริ่มต้น เป็น 0 ทั้งที่มีข้อมูล
ในตาราง 5 ข้อมูลแล้ว เอ้ย ละอ่อนใจ ทำ Search เลือกข้อมูล ในฐานข้อมูล คิดว่ายากแล้วนะแต่เจอ Auto number เข้าไป ไปไม่เป็นเลย
Code vb.net ฐานข้อมูล access 2003 หรือ 2007
Code (VB.NET)
Option Explicit On
'Option Strict On
Imports System.Text
Imports System.Data
Imports System.Data.OleDb
Imports System.Data.OleDb.OleDbConnection
Imports System.Data.SqlClient
Imports System.Drawing.Drawing2D
Imports System.String
Public Class FormAdd_Comment
Dim strConn, Objrecored As String
Dim Autorun As Integer
Dim Conn As New OleDbConnection
Dim da, da1 As OleDbDataAdapter
Dim ds, dataset As New DataSet()
Dim ds1 As New DataSet()
Dim CurrentEmployees As Integer
Dim IsFind As Boolean = False
Dim instance As OleDbException
Dim comSearch As New OleDbCommand
Private Sub ProvinceBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.Validate()
Formdisplay_Colum()
End Sub
Private Sub LoadFiledata()
' Code ติดต่อกับฐานข้อมูล Accress 2007
'strConn = "Provider=Microsoft.ACE.OLEDB.12.0; " & _
' "Data Source=..\\Computer_CheckcoseEmployees.accdb;Persist Security Info=False"
' Code ติดต่อกับฐานข้อมูล Accress 2003
'Dim conStr As String = _
strConn = "provider=Microsoft.Jet.oleDb.4.0;" & _
"Data Source=..\\Computer_CheckcoseEmployees.mdb"
Dim Conn As New OleDbConnection(strConn)
Conn.Open()
Dim Sql As String = "select * from Comment"
Dim Cmd As New OleDbCommand(Sql, Conn)
Dim Adapter As New OleDbDataAdapter(Cmd)
Dim Data As New DataSet()
Adapter.Fill(Data, "cat")
Dim Data1 As New DataSet()
DataGridView1.DataSource = Data.Tables("cat")
Conn.Close()
Dim sqlCategories As String
sqlCategories = "SELECT * from Comment"
da = New OleDbDataAdapter(sqlCategories, Conn)
da.Fill(ds, "Comment")
Return
End Sub
Private Sub ClearButtom()
BtnAdd.Enabled = True
BtnSave.Enabled = False
BtnEdit.Enabled = False
BtnSave_Edit.Enabled = False
BtnDelete.Enabled = False
BtnExit.Enabled = True
End Sub
Private Sub ClearText()
txtComment_ID.Text = "000"
lblComment_ID.Text = "000"
txtComment_Title.Text = ""
txtComment_ID.Enabled = True
txtComment_Title.Enabled = True
End Sub
'--------------------------------------------->>>> (FORMLOAD PAGE ข้อมูล)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
LoadFiledata()
showAllProvince() ' Function Call เรียกใช้งาน Table provinces
'txtComment_ID.ContextMenu = New ContextMenu()
txtComment_ID.Enabled = False
txtComment_Title.Enabled = False
txtComment_ID.Text = "000"
lblComment_ID.Text = "000"
txtComment_Title.Text = "หมายเหตุ"
ClearButtom()
'AutoRune()
Return
End Sub
Private Sub BtnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAdd.Click
ClearText()
AutoRune()
lblComment_ID.Show()
txtComment_ID.Hide()
BtnSave.Enabled = True
BtnAdd.Enabled = False
End Sub
Private Sub BtnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnExit.Click
Me.Close()
End Sub
'--------------------------------------------->>>> (SAVE ข้อมูล)
Private Sub BtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSave.Click
Dim sqlAdd As String
Dim comAdd As New OleDbCommand
If txtComment_ID.Text = "" Then
MessageBox.Show("กรอกข้อมูลรหัส !!!", "แจ้งให้ทราบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
txtComment_ID.Focus()
Exit Sub
End If
If txtComment_Title.Text = "" Then
MessageBox.Show("กรอกข้อมูลหมายเหตุ !!!", "แจ้งให้ทราบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
txtComment_ID.Focus()
Exit Sub
End If
If MessageBox.Show("คุณต้องการเพิ่มรายการหมายเหตุ ใช่หรือไม่?", "แจ้งให้ทราบ", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
sqlAdd = "INSERT INTO Comment(Comment_ID,Comment_Title)"
sqlAdd &= " VALUES ('" & lblComment_ID.Text & "',"
sqlAdd &= "'" & txtComment_Title.Text & "')"
' Code ติดต่อกับฐานข้อมูล Accress 2007
'strConn = "Provider=Microsoft.ACE.OLEDB.12.0; " & _
' "Data Source=..\\Computer_CheckcoseEmployees.accdb;Persist Security Info=False"
' Code ติดต่อกับฐานข้อมูล Accress 2003
'Dim conStr As String = _
'strConn = ("provider=Microsoft.Jet.oleDb.4.0;" & _
' "Data Source=..\\Computer_CheckcoseEmployees.mdb")
With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With
With comAdd
.CommandType = CommandType.Text
.CommandText = sqlAdd
.Connection = Conn
.ExecuteNonQuery()
End With
MessageBox.Show("เพิ่มรายการหมายเหตุ เรียบร้อยแล้ว !!!", "แจ้งให้ทราบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
LoadFiledata()
showAllProvince()
Formdisplay_Colum()
BtnAdd.Enabled = True
BtnSave.Enabled = False
'txtComment_ID.Enabled = False
txtComment_Title.Enabled = False
Return
End Sub
Private Sub showAllProvince() ' Function ใช้เพื่อ Call Table Doctor
Dim SqlDoctor As String
SqlDoctor = "SELECT * from Comment"
SqlDoctor &= " FROM Comment"
da.SelectCommand.CommandText = SqlDoctor
If IsFind = True Then
ds.Tables("Comment").Clear()
End If
If ds.Tables("Comment").Rows.Count <> 0 Then
IsFind = True
With DataGridView1
.ReadOnly = True
.DataSource = ds.Tables("Comment")
End With
Else
IsFind = False
End If
Formdisplay_Colum()
Return
End Sub
Private Sub Formdisplay_Colum() ' Function แสดงหัวข้อบน Gridviwe Table Doctor
Dim cs As New DataGridViewCellStyle()
cs.Font = New Font("AngsanaUPC", 17, FontStyle.Bold)
With DataGridView1
If .RowCount > 0 Then
.Columns(0).HeaderText = "รหัส"
.Columns(1).HeaderText = "หมายเหตุ"
.Columns(0).Width = 30
.Columns(1).Width = 440
End If
End With
Return
End Sub
Private Sub DataGridView1_CellMouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseUp
If e.RowIndex = DataGridView1.Rows.Count - 1 Then
Exit Sub
End If
If e.RowIndex = -1 Then Exit Sub
With DataGridView1
CurrentEmployees = CInt(.Rows.Item(e.RowIndex).Cells(0).Value)
txtComment_ID.Text = .Rows.Item(e.RowIndex).Cells(0).Value.ToString()
lblComment_ID.Text = .Rows.Item(e.RowIndex).Cells(0).Value.ToString()
txtComment_Title.Text = .Rows.Item(e.RowIndex).Cells(1).Value.ToString()
End With
BtnEdit.Enabled = True : BtnAdd.Enabled = False : BtnDelete.Enabled = True
Return
End Sub
Private Sub ButDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnDelete.Click
Dim SqlDelete As String
Dim ComDelete As New OleDbCommand
If (txtComment_ID.Text = "") And (lblComment_ID.Text = "") Then
Return
End If
If MessageBox.Show("ต้องการลบข้อมูลแผนก หรือไม่", "แจ้งให้ทราบ", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
SqlDelete = "DELETE * FROM Comment"
SqlDelete = "WHERE Comment_ID = txtComment_ID.Text"
ComDelete = New OleDbCommand(SqlDelete, Conn)
'strConn = "provider=Microsoft.Jet.oleDb.4.0;" & _
' "Data Source=..\\Computer_CheckcoseEmployees.mdb"
With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With
SqlDelete = "DELETE * FROM Comment WHERE Comment_ID = txtComment_ID.Text"
ComDelete = New OleDbCommand(SqlDelete, Conn)
ComDelete.Parameters.AddWithValue("txtComment_ID.Text", txtComment_ID.Text)
ComDelete.ExecuteNonQuery()
End If
MessageBox.Show("ลบข้อมูลหมายเหตุนี้ เรียบร้อยแล้ว", "แจ้งให้ทราบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
LoadFiledata() ' Function Call เรียกใช้งาน Table Loadtable Form Province
showAllProvince() ' Function Call เรียกใช้งาน Table province
Formdisplay_Colum() ' Function Call เรียกใช้งาน Display Field
ClearButtom()
'AutoRune()
Return
End Sub
Private Sub BtnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEdit.Click
If txtComment_ID.Text <> "" Then
If MessageBox.Show("ต้องการแก้ไขข้อมูลหมายเหตุนี้ หรือไม่", "แจ้งให้ทราบ", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
BtnAdd.Enabled = False
BtnSave.Enabled = False
BtnEdit.Enabled = False
BtnSave_Edit.Enabled = True
BtnDelete.Enabled = False
txtComment_ID.Enabled = False
txtComment_Title.Enabled = True
txtComment_Title.Focus()
End If
Else
Exit Sub
End If
End Sub
Private Sub BtnSave_Edit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSave_Edit.Click
Dim SqlEdit As String
Dim ComEdit As New OleDbCommand
If txtComment_ID.Text = "" Then
MessageBox.Show("กรอกข้อมูลรหัส !!!", "แจ้งให้ทราบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
txtComment_ID.Focus()
Exit Sub
End If
If txtComment_Title.Text = "" Then
MessageBox.Show("กรอกข้อมูลหมายเหตุ !!!", "แจ้งให้ทราบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
txtComment_ID.Focus()
Exit Sub
End If
If MessageBox.Show("ต้องการแก้ไขข้อมูลชื่อแผนก หรือไม่", "แจ้งให้ทราบ", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
SqlEdit = "UPDATE Comment"
SqlEdit &= " SET Comment_Title = '" & txtComment_Title.Text & "'"
SqlEdit &= " WHERE (Comment_ID = '" & txtComment_ID.Text & "')"
' Code ติดต่อกับฐานข้อมูล Accress 2007
'strConn = "Provider=Microsoft.ACE.OLEDB.12.0; " & _
' "Data Source=..\\Computer_CheckcoseEmployees.accdb;Persist Security Info=False"
' Code ติดต่อกับฐานข้อมูล Accress 2003
' Dim Strconn As String
'strConn = "provider=Microsoft.Jet.oleDb.4.0;" & _
' "Data Source=..\\Computer_CheckcoseEmployees.mdb"
With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
End With
ComEdit.CommandType = CommandType.Text
ComEdit.CommandText = SqlEdit
ComEdit.Connection = Conn
ComEdit.ExecuteNonQuery()
End If
MessageBox.Show("แก้ไขข้อมูลหมายเหตุนี้ เรียบร้อยแล้ว", "แจ้งให้ทราบ", MessageBoxButtons.OK, MessageBoxIcon.Information)
LoadFiledata() ' Function Call เรียกใช้งาน Table Loadtable Form Province
showAllProvince() ' Function Call เรียกใช้งาน Table province
Formdisplay_Colum() ' Function Call เรียกใช้งาน Display Field
BtnAdd.Enabled = True
BtnSave_Edit.Enabled = False
txtComment_Title.Enabled = False
Return
End Sub
'------------------------------------------------------------------------------------------------------>>>>> > (PAGE Call AutoNumber )
Private Sub AutoRune()
Dim tmpNumber As Integer
Dim ComEdit As New OleDbCommand
Dim sqlCheckNumber As String
Dim price As Integer = 0
dataset = New DataSet
Dim i As Integer
' strConn = "provider=Microsoft.Jet.oleDb.4.0;" & _
' "Data Source=..\\Computer_CheckcoseEmployees.mdb"
With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
sqlCheckNumber = "SELECT Comment_ID FROM Comment ORDER BY Comment_ID asc"
With ComEdit
ComEdit.CommandType = CommandType.Text
ComEdit.CommandText = sqlCheckNumber
ComEdit.Connection = Conn
ComEdit.ExecuteReader()
ComEdit = New OleDbCommand(sqlCheckNumber, Conn)
Dim adapter As New OleDbDataAdapter(ComEdit)
adapter.Fill(dataset, "pro")
For i = 0 To dataset.Tables("pro").Rows.Count '+ 1
tmpNumber = i + 1
Next
MsgBox(i)
txtComment_ID.Text = Format(CInt(tmpNumber.ToString("000")))
lblComment_ID.Text = Format(CInt(tmpNumber.ToString("000")))
Return
End With
End With
End Sub
----------------------------------------------------------------------------------------------------------------------------------------------->>>>>>>
Code (VB.NET)
Private Sub txtComment_ID_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtComment_ID.KeyPress
e.Handled = ClassCall.CurrencyOnly(txtComment_ID, e.KeyChar)
End Sub
End Class
เป็น From หน้าจอการทำงานที่ทำการทดสอบ

ตามที่ทำเครื่องหมาย Auto number ครับ ไม่รู้ทำผิดตรงไหน ถึงไม่ได้สักที ช่วยผมอีกที่นะคับ
|
ประวัติการแก้ไข 2010-11-29 12:28:58 2010-11-29 12:31:06 2010-11-29 12:33:35 2010-11-29 12:35:04 2010-11-29 12:36:41 2010-11-29 12:38:45 2010-11-29 12:39:34 2010-11-30 12:37:25
 |
 |
 |
 |
Date :
2010-11-29 12:27:25 |
By :
angelrings0 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (VB.NET)
Private Sub AutoRune()
Dim tmpNumber As Integer
Dim ComEdit As New OleDbCommand
Dim sqlCheckNumber As String
Dim price As Integer = 0
dataset = New DataSet
Dim i As Integer
strConn = "provider=Microsoft.Jet.oleDb.4.0;" & _
"Data Source=..\\Computer_CheckcoseEmployees.mdb"
With Conn
If .State = ConnectionState.Open Then .Close()
.ConnectionString = strConn
.Open()
sqlCheckNumber = "SELECT Top 1 Comment_ID FROM Comment ORDER BY Comment_ID Desc"
With ComEdit
.CommandType = CommandType.Text
.CommandText = sqlCheckNumber
.Connection = Conn
tmpNumber = .ExecuteScalar()
txtComment_ID.Text = Format$(tmpNumber + 1, ("000"))
lblComment_ID.Text = Format$(tmpNumber + 1, ("000"))
End With
End With
End Sub
ขอมีส่วนร่วมด้วยคน
|
ประวัติการแก้ไข 2010-11-29 14:20:35
 |
 |
 |
 |
Date :
2010-11-29 14:19:38 |
By :
kaimuk |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณคับสำหรับ คำตอบที่หามานาน สุดยอด
เอาไปแก้ นิดหน่อยได้เลย สุดยอดจิง ๆ
|
 |
 |
 |
 |
Date :
2010-11-29 14:38:59 |
By :
angelrings0 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขออีกที่คับ ทำได้ตั้งแต่ 1-10 ได้
แต่พอเริ่มเลขที่ 11 แล้วมันไม่ทำต่อไม่เข้า ใจ + ให้ หรือทำให้มันนับ ในloop for ก้อไม่ได้เหมือนกันคำตอบคือ 10 ตลอดเลย
รบกวนอีกทีคับ
|
 |
 |
 |
 |
Date :
2010-11-29 15:49:40 |
By :
angelrings0 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คือผมไม่อ้าว 12 แล้วไม่เข้าใจอ่ะครับ ขอละเอียดกว่านี้หน่อย
|
 |
 |
 |
 |
Date :
2010-11-29 16:18:39 |
By :
kaimuk |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|

ตาม Code ที่แก้ไขให้ ทำแล้วมัน ok แต่พอให้ date เก็บไป 10 แล้ว จะทำลำดับ ที่ 11 กด Add มัน ไม่ auto number 11 ให้นะคับมัน auto
ได้ถึงแค่ 10 ไม่รู้ทำมันลองเอา loop เข้าช่วยแล้วมันก้อได้แค่ 10 นะคับไม่นับ 11-12-13-14 - ต่อไปเรื่อย ๆ นะคับ เพราะอะไร
|
ประวัติการแก้ไข 2010-11-29 16:49:48 2010-11-29 16:52:55 2010-11-29 16:54:31
 |
 |
 |
 |
Date :
2010-11-29 16:48:06 |
By :
angelrings0 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Sub AutoRune() เป็นแค่การดึง ID ล่าสุดมาแสดงใช้ไหมครับ
ทีนี้ลองมาดู ขั้นตอนการทำงานว่ามันน่าจะผิดตรงไหน จริงๆ ผมไม่รู้ Loop การทำงานของ Programs เลยว่าทำงานยังไง
อย่าง Event Save ก็ไม่มีการปิด Connection อาจเป็นเหตุให้ Data Save ไม่จบ หรือเรื่อง การใช้ Sub AutoRune() ดึง ID แบบเกินความจำเป็นจริงๆดึงครั้งเดียวแล้วมาเก็บไว้ใน ตัวแปรแล้ว Control ที่ตัวแปร น่าจะเปลื่องทรัพยากรน้อยกว่า
ลอง Focus ไปที่ Event Add เห็นว่าทุกครั้งที่มีการดึง ID ต้องใช้ Sub AutoRune การที่ได้ ID 10 แสดงว่าข้อมูลใน Database มีแค่ 9 แล้ว 10 ที่ Add ไปก่อนหน้าหายไปไหน ทำไมจึงหายไป หายเพราะไม่ได้ Save หรือ Save แล้วไม่ได้รับ ทดลองตรวจสอบดูครับ
|
 |
 |
 |
 |
Date :
2010-11-30 08:38:20 |
By :
kaimuk |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองแล้วคับ ผมลองไปเพิ่่ม ลำดับที่ 11 ลงใน access แล้วลองมากด add ที่ตัวโปรแกรมเพื่อเพิ่ม รหััสที่ 12 มันก้อยังนับเป็น 10 อยู่นะครับ
ไม่รู้ว่าเพราะอะไร
|
 |
 |
 |
 |
Date :
2010-11-30 08:51:53 |
By :
angelrings0 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
หุหุ ไม่ช่วยหรอก จนกว่าจะเปลี่ยนไปใช้ autonumber เมือนชาวบ้านเขาก่อน
|
 |
 |
 |
 |
Date :
2010-11-30 09:04:08 |
By :
ตังค์แมน |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมพอจะนึกออกและ
จขกท น่าจะเก็บ ID เป็น String ใช้ไหมครับ ลองเปลี่ยน Type เป็น Int ดูปัญหาน่าจะจบนะครับ
แต่ถ้าไม่ใช้ขอดูหน้า Design ของ Database ด้วยครับ
|
 |
 |
 |
 |
Date :
2010-11-30 09:49:14 |
By :
kaimuk |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เหอะ ๆๆ คนเรา ต้องลองทำอะไร ที่ต่างจากคนอื่นบาง คับ จะเอาของคนอื่นมาก้อต่อเมื่อเราจำเป็นครับ
อย่างที่มีคนพูดไว้ นะคับ คิดใหม่ ทำใหม่บ้าง จะได้มี วิธีใหม่ ๆ หรือทางเลือกใหม่ ๆ ในการเลือกใช้งานคับ
|
 |
 |
 |
 |
Date :
2010-11-30 11:38:45 |
By :
angelrings0 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
รูปตารางใน Data Base Access ที่เก็บข้อมูล

รูป ข้อมูลใน Data Base Access ที่เก็บข้อมูล
แล้วทำการลบ ลำดับที่ 7 แล้วทำการเพิ่มลำดับที่ 11 แต่พอไปในโปรแกรมทำการ Add ข้อมูลมันก้อยังนับ 10 อยู่ดี ไม่นับ 12-13-14-15
ต่อ ๆ ไปอีกนะคับ พยามยามมาครึ่งวันละ ก้อนับได้แค่ 10 อยู่ดี

หน้าโปรแกรม ในตารางไปเพิ่ม 11 มาแต่พอ Add ในโปรแกรมเพื่อเพิ่มลำดับที่ 12 ก้อยังเป็น 10 อยู่ดี ตามรูปนะคับ

มันรู้ว่าทำผิดขั้นตอนไหน แต่ทำตามโค๊ดที่ให้มาข้างต้นทำได้นะคับ แต่ Auto ถึงแค่ 10 ไม่สามารถทำต่อจากนั้นได้แปลกดี ทั้งที่ทำได้ตั้งแต่
1-10 ได้ทำมัยพอขึ้น 11 มันไม่ Auto ให้ต่อไม่เข้าใจเหมือนกัน
|
ประวัติการแก้ไข 2010-11-30 11:53:12 2010-11-30 11:55:44
 |
 |
 |
 |
Date :
2010-11-30 11:50:37 |
By :
angelrings0 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ครับ ผมก้อลองไปเรื่อย ๆ แหละ คับ ไม่ได้เป็นโปรแจคอะไรหรอกคับ แค่เขียนไว้เก็บข้อมูล ในบริษัท ในส่วนที่ผมรับผิดชอบ ไม่อยากเก็บ
ไว้ใน Excel นะคับ เพราะแต่ก่อนใช้ vb6 ตอนนี้มาใช้ .net มันติดปัญหาในส่วนของการ Auto number แค่ที่เดียวอย่างอื่นทำหมดแล้วคับ
แค่ไม่เข้าใจว่าทำมัยถึงเป็นอย่างนี้ เผื่อคนอื่น ๆ เจอปัญหาจะได้รู้ว่าัมันเกิดจากอะไรนะคับ ดูโค๊ตที่ผมเขียนเอานะคับผม ชอบเอาของที่ยาก
แลกซับซ้อนมาทำให้มันดูง่ายขึ้น โค๊ดสั้น ๆ แต่ได้ตามต้องการคับ ไม่ต้อง เช็คเงื่อนไขให้มันยุ่งยากนะคับ ดูบ้างคนเขียนแล้วผม งง นะ เพราะ
โค๊ดเยอะมากแค่ทำการ save ข้อมูล จะต้องเช็คอะไรให้มันมาก เช็คเงื่อนไข ว่าครบหรือป่าว ชี้ว่าไปที่ให้ อัป หรือแก้ไข อย่างไร ของผมสั้น ๆ
และได้ใจความนะผมคิดว่านะ แต่คนที่เขียนโปรแกรมทุกคน เขียนมาไม่เหมือนกันคับ 10 คนก้อ 10 อย่างแต่ได้ผล ออกมาเหมือนกันคับ
ว่าหรือป่าว ไม่ได้ว่าใครนะคับ แต่ผมมือใหม่ .net ไม่รู้ ในส่วนไหนแก้ไขไม่ได้ ก้อต้องลองถามผู้รู้แหละคับ ว่ามันเป็นเพราะอะไร
คนเขียนโปรแกรม ต้องเจอปัญหาเยอะ ๆ คับถึงจะรู้จิง เรียกว่า สุดยอด แต่ คนที่สามารถเข้าใจและ แ้ก้ไข ปัญหาที่เกิดขึ้นกับคนอื่น ๆ ได้
เขาเรียก ว่า สุดยอดยิ่งกว่า ครับ
|
ประวัติการแก้ไข 2010-11-30 12:26:17
 |
 |
 |
 |
Date :
2010-11-30 12:24:09 |
By :
angelrings0 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Ok ได้แล้วครับ ไม่ได้ไปดูใน Data base Save ชนิดข้อมูลเป็น Text มันเลยไม่ทำให้ คับ
ต้องเปลี่ยน จาก Text เป็น Number ก้อได้แล้วคับ ขอบคุณครับสำหรับทุก ๆ คำตอบ ขอบคุณมาก ๆ คับผม
|
 |
 |
 |
 |
Date :
2010-11-30 12:47:43 |
By :
angelrings0 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
^_^
|
 |
 |
 |
 |
Date :
2010-11-30 13:18:10 |
By :
ตังค์แมน |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ดีนะที่มันเป็น access นี่ถ้าเป็นพวก client server แล้ว user request id พร้อมกันทีละหลายคน
ไม่ทราบว่าจะจัดการเรื่อง duplicate id ยังไงจ๊ะ
ปล. แค่แนะนำเฉยๆ ไม่ต้องใส่ใจนะจ๊ะ ไม่เกี่ยวกับข้าพเจ้าอยู่แล้ว
|
 |
 |
 |
 |
Date :
2010-11-30 13:23:23 |
By :
ตังค์แมน |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ในกรณีที่ จขกท. ยังต้องการให้ ID เป็น String(text นั้นแหละ) จขกท. ต้องเก็บหลักมันให้ครบครับดังในตัวโปรแกรมแทนที่จะ Save 9 ก็ต้อง Save เป็น 009 ในกรณีกำหนดไว้ 3 หลัก แต่ถ้า จขกท. ต้องการเก็บเป็นตัวเลขจริง ก็ต้องใช้ Int (Number นั้นแหละ) เพราะลำดับศักดินาของตัวเลข เขาจะดูืทุกตำแหน่ง ส่วน ตัวอักษร เขาจะไล่ดูเป็นตัวๆ ไป
แต่การเก็บในลักษณะนี้ของ จขกท. มันก็ตามกระทู้ต้นๆ หละครับการใช้ Auto Number ดูจะเป็นทางออกที่ดีกว่าเพราะ จขกท. ไม่จำเป็นต้องไปใส่ใจการนำเข้า ปรับปรุง อะไรกับเจ้า ID นั้น การเขียน ID ในรูปแบบของ จขกท. จะเหมาะสมมากหาก ID มีลักษณะเป็น PK จริงๆ จขกท. อาจมีเหตุผลอื่นในการกำหนด ID ในลักษณะนี้ แต่ถ้า ID ไม่มีนัยยะ สำคัญอะไรผมก็ขอเป็นอีก 1 เสียงที่สนับสนุนให้ใช้ Auto Number ครับ
|
 |
 |
 |
 |
Date :
2010-11-30 13:33:36 |
By :
kaimuk |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ครับ ขอบคุณคับคือ อยากลอง access ดูนะคับ เพราะ มีน้อง ๆ เขาขอมาอยากได้ ไม่อยากทำเป็นแบบ SQL เลยทำเป็นตัวอย่างให้ดูนะ
พอจากตรงนี้แล้วผม ก้อคงทำ SQL นะครับแต่ยังไม่รู้เลยว่าทำงั้ย ไม่เคยทำเหมือนกัน จะลองดู -*-
จากที่เคยทำงานมากับหลาย ๆ โปรแกรมสำเร็จรูปมันก้อมีปัญหาเกี่ยวกับ Auto Number ทั้งนั้นแหละคับ
คือไม่สามารถทำงานในหน้าเดียวกันพร้อมกันหลาย ๆ คนไม่สามารถทำได้ ตอนนี้ที่บริษัทใช้โปรแกรม
สำเร็จรูปของ MAC5 มีปัญหา นี้เลยใช้งานโปรแกรมในหน้าเดียวกันพร้อมกัน 2 คนไม่ได้ รหัสซ้ำกัน
ซื้อมาหมดไปจะ ล้าน ละมั้งรวม server ติดปัญหาอันนี้แหละ ลองได้นะคับ ให้ทำงานพร้อมกัน ใน หน้าเดียวกัน
ว่าสามารถทำได้หรือไม่ เช่นว่า
ีuser 1 key code 1
user 2 key code 2
พร้อมกันให้หน้าจอของการทำงานเดียวกันได้หรือไม่ ผมว่าคำตอบที่ไ้ด้คือ ไม่ได้
เนื่องมาจาก user 1 key code 1 ได้แค่จองไว้ยังไม่ได้ save
แล้ว user 2 key code 2 ก้อไม่สามารถทำงานได้เนื่้องมาจากไม่สามารถเช็คได้ว่า มี code 1 หรือไม่เพราะยังไม่ได้ save จึงไม่สามารถ
ตรวจสอบได้เลย
อันนี้ตามประสบการณ์นะครับ ถ้าผิดงั้ยขอโทษด้วยครับ
|
ประวัติการแก้ไข 2010-11-30 15:07:09
 |
 |
 |
 |
Date :
2010-11-30 15:00:04 |
By :
angelrings0 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
555 เขาแนะมาผม อ่านแล้วเข้าใจพอสมควรนะคับ ผมก้อทำมาตามที่เขาแนะมาตั้งแต่ต้นนะคับ ก้อได้นะคับ ไม่ผิดที่จะคิด -*-
|
 |
 |
 |
 |
Date :
2010-11-30 15:08:22 |
By :
angelrings0 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แบบนี้ได้ป่าว สร้างขึ้นมา 1 Column ตั้งรูปแบบเป็น AutoNumber ส่วน ID ของคุณพี่ตั้งเป็น String เวลาจะบวกเพิ่มเข้าไป 1 ก็ดึง ID จากการเรียงของ ORDER BY AutoNumber ASC ก็น่าจะได้เลข สุดท้ายขึ้นมานะครับ
|
 |
 |
 |
 |
Date :
2010-11-30 15:26:31 |
By :
EucifeR |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เข้าใจผิดเรื่องไรครับ ผมไม่รู้อะ ว่ามันผิดตรงอะไร งง
ครับถูกต้องคับ no.31 ความอยากลองครับ เลยลองไปเรื่อย ๆ อะคับได้มาก้อได้อีก 1 ความคิดดี ๆ จ้า
ที่บอกไว้นะครับเพราะผมยังไม่ค่อยเข้าใจระบบ SQL เท่าไหร่ แต่ถ้า Access นะเข้าใจครับ
แล้วน้องที่เขาขอนะ ต้องการทำ Data ใน Access เลยมาลองทำดูนะครับ อยากรู้ด้วยว่้า Access 2003 กับ 2007
มันต่างกันที่ตรงไหนด้วย แล้ว Auto Number นะคับ ดูที่ไหนก้อไม่ค่อยจะมีใครทำกันนะครับหาดูตัวอย่าง
ไม่ค่อยมีเลยอยากลอง เพราะ vb6 นะมันทำได้ไม่ยากเหมือน .net นะครับ อีกอย่างก้อเพิ่งมาลอง .net ได้สัก 3 เดือน
เลยใคร่รู้นะครับ ว่า vb6 กับ .net มันต่างกันงั้ย เพราะตอนเรียนมา .net ยังไม่มีเลยคับ หยุดไปหลายปี มาลองทำ .net
มันก้อไม่ได้ต่างกันเท่าไหร่ แต่ ทำ Auto Number ไม่ได้เลย งง ว่าทำมัย เผื่อไว้ว่าท่านอื่น ไม่เข้าใจหากทำเหมือนกับ
ผมจะได้มีตัวอย่างไว้ดูนะคับ คงไม่ผิดนะ หลายคนหลากความคิดครับ ช่วย ๆ กัน จะได้มีตัวเลือกหลาย ๆ อย่างคับ
|
ประวัติการแก้ไข 2010-11-30 15:34:46
 |
 |
 |
 |
Date :
2010-11-30 15:32:03 |
By :
angelrings0 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
AutoNumber ที่เขาพูดๆ กันนี่หมายถึง DataType นะท่าน
|
 |
 |
 |
 |
Date :
2010-11-30 15:33:59 |
By :
PlaKriM |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ครับ ลองไปดูที่ผม โพลรูปนะคับ ที่บอกก้อถูกคับ แต่ผมไม่ต้องการให้ ฐานข้อมูล auto เองนะคับอยาก
จะทำขึ้นมาเองเวลา กดปุ่ม add นะครับให้มันสร้างให้เราโดยผ่านจะโปรแกรมเองนะคับ
ผมหยุดเขียนมานานอาจจะตอบไม่ต้องประเด็นบ้าง -*- 
|
 |
 |
 |
 |
Date :
2010-11-30 15:39:34 |
By :
angelrings0 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เอิ๊ก ๆ ๆ งั้นท่านอื่นต่อเลยครับ สงสัยอยากจะทำ จาก String ไปเป็น Integer เอาไปบวก1 เเล้วบันทึกกลับเป็น String
|
ประวัติการแก้ไข 2010-11-30 15:45:39 2010-11-30 15:46:55 2010-11-30 15:48:13
 |
 |
 |
 |
Date :
2010-11-30 15:44:00 |
By :
EucifeR |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อันนี้ของผมนะลองศึกษาดรับ c# + mysql odbc driver
Code (C#)
private void GetNum()
{
sb = new StringBuilder();
sb.Append("SELECT IFNULL(MAX(DISTINCT PRNumber),0) AS MaxofPRNumber FROM purchase");
string sqlNum;
sqlNum = sb.ToString();
com = new OdbcCommand();
com.CommandText = sqlNum;
com.CommandType = CommandType.Text;
com.Connection = Conn;
dr = com.ExecuteReader();
if (dr.HasRows)
{
dr.Read();
int i;
i = Convert.ToInt32(dr["MaxofPRNumber"])+ 1;
txtPr.Text = i.ToString("00000000");
}
else
{
txtPr.Text = "00000001";
}
dr.Close();
}
|
 |
 |
 |
 |
Date :
2011-05-09 10:39:16 |
By :
woraponc |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ต่อครับหมายเหตุนะครับ PRnumber คือ field ที่ให้รันเลขที่อัติโนมัตินะครับ txtPr.Text คือ textbox ที่แสดง autonum ครับไม่ต้องให้กรอกให้ textPr.Enable=fals ครับ ขอบคุณครับ
|
 |
 |
 |
 |
Date :
2011-05-09 10:43:13 |
By :
woraponc |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เก็บ running แยกอีก table คับ 2 คอลัม
คอลัมแรก Name เก็บ Run1205
คอลัมสอง RunningID เก็บ ตัวเลขRun
พอบันทึก ท่านก็มาเช็คคอลัม Name ว่าอยู่เดือนไหนปีไหน ได้เลขRun เท่าไร
ถ้าไม่เจอก้ insert Name ใหม่ใส่เดือนนั้น เลขรันใหม่
ก้จะได้เลขรันใหม่ทุกเดือนคับ
|
 |
 |
 |
 |
Date :
2012-05-04 10:45:53 |
By :
the man |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองดูตัวนี้นะครับ เป็นการเขียนแบบบ้านๆนะครับ แต่ผลออกมาถือว่าดีครับ
Code (VB.NET)
Private Sub SelectMax()
Dim ItemID As Integer
sqlItem = New SqlCommand("select MAX( ชื่อฟิลที่อยากเอาออกมา ) FROM ชื่อตาราง ", Conn)
Dim readerA As SqlDataReader = sqlItem.ExecuteReader()
While readerA.Read()
ItemID = CInt(readerA(0))
ItemID = ItemID + 1
tbItemID.Text = CStr(ItemID)
End While
readerA.Close()
End Sub
ขอย้ำนะครับว่าผมเขียนแบบบ้านๆ ขอแค่รันออกเป็นพอ เหมาะสำหรับการส่งงานแบบเป็นโปรแกรมนะครับ ถ้าส่งโค้ดด้วยขอให้ใช้วิธีก่อนน่าจะดีกว่านะครับ
ปล.ถ้าไม่ถูกหลักยังไงผู้รู้แนะนำทีนะครับ
|
ประวัติการแก้ไข 2012-05-05 15:58:27
 |
 |
 |
 |
Date :
2012-05-05 15:56:53 |
By :
slipknot1256 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
รบกวนพี่ส่ง ไฟล์ให้หน่อยคับ คือว่า ผมติดตรง autoid ทำงัยก็ทำไม่ได้ เป็นโปรเจคจบซะด้วย ไม่มีใครปรึกษาได้เลย เครียดมากเลยคับ
|
 |
 |
 |
 |
Date :
2013-12-15 06:17:18 |
By :
goandfriend |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมทำระบบแจ้งซ่อม
คือว่า ผมจะทำให้ เลขที่ใบรับซ่อม มัน รัน 0001,0002 ไปเรื่อยๆคับ ศึกษามาหลายเว็ปก็ยังไม่เข้าใจเลย ผมทำ vb2010 เชื่อมต่อกับ access คับ

ผิดถูกยังงัย ก็ช่วยแนะนำหน่อยคับ
|
 |
 |
 |
 |
Date :
2013-12-17 01:34:52 |
By :
ผู้อ่อนแอ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เพิ่ม ลบ แก้ ไข ค้นหา ผมพอทำได้ แต่ จะทำให้ เลขที่ใบรับซ่อม มัน รัน อัตโนมัติ ไปเรื่อยๆ ผมติดตรงนี่แหละคับ
พี่ๆช่วยผมหน่อยคับ
ถ้ามี Code อื่นๆ ที่ vb2010 เชื่อม กับ access ก็ขอด้วยคับ มาเป็นกรณีศึกษา ปวดหัวมานานแล้ว ไปห้องสุมดเอามาหลายเล่มก็ยังไม่เข้าใจ ทำตามก็ eror
|
 |
 |
 |
 |
Date :
2013-12-17 01:43:19 |
By :
ดหกฟฟ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มรภ.เลย ฤ เปล่าเนี่ย Code คุ้นๆ
|
 |
 |
 |
 |
Date :
2013-12-17 12:33:15 |
By :
55 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมไปโหลดมาดูเป็นแนวคับ ไม่รู้ว่าของใคร มันเป็นไฟล์ pdf ที่เขียนว่า database คับ ถ้าผมผิด ณ จุดๆ นี้ ขออภัยอย่างสูงด้วยคับ
|
 |
 |
 |
 |
Date :
2013-12-17 20:14:18 |
By :
ดหฟก |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เก่าเลยติดต่อกับ Accress เอาไปลองดูนะครับ
Dim Constr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=..\\ชื่อฐานข้อมูลของเรา.accdb; persist Security Info =False"
น่าจะประมานนี้นะเท่าที่ จำความได้ 55555 มันนานมั๊กเลย ทำมัยไม่ใช้ฐานข้อมูลของ MySql ละง่ายกว่ากันเยอะถ้าใช้เรียกแบบข้างบน
ยิ่งเปิด หลาย ๆ หน้าพร้อมกันมันมีปัญหาได้นะ หาจัดการเกี่ยวกับ connection ไม่ดีอาจเกิน Error ระบบยากจะควบคุม
|
 |
 |
 |
 |
Date :
2013-12-18 09:14:23 |
By :
angelrings0 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณคับ จะลองเปลี่ยนมาให้ sql
|
 |
 |
 |
 |
Date :
2013-12-18 21:34:02 |
By :
afdsfdsa |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
การทำเลขรหัส Auto Run ครับลองเอาไปประยุกดู แต่ผมทำให้ฐานข้อมูล ของ MySql นะ
สั้น ๆ เผื่อจะช่วยได้
Public Sub DisplayMaxID()
Dim iMaxID As Integer
Dim CDB As New MySqlCommand
With CDB
.Connection = Con_CallData
.CommandText = "SELECT MAX(Id_Billnum) FROM db_by_supplier"
If IsDBNull(.ExecuteScalar()) = True Then
iMaxID = 1
Else
iMaxID = .ExecuteScalar() + 1
End If
lblId_Billnum.Text = iMaxID.ToString("000000")
End With
End Sub
|
 |
 |
 |
 |
Date :
2013-12-19 10:01:52 |
By :
angelrings0 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
sql server ใช้ ident_current
mysql ใช้ select last_insert_id()
วิธี +1 บ้านนอกมาก
|
 |
 |
 |
 |
Date :
2013-12-19 10:45:03 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คร๊าบพ่อคนเก่ง ก้อบอกวิธีน้องเขาไปสิครับ อย่าเก่งแค่ เอามาแปะครับ
แล้วมาว่าให้คนอื่นเขาครับ มันน่าเกียดเขาแชร์ ความรู้กันครับ ไม่ได้มาอวดรู้ครับ
ถ้าเก่งก้อบอก น้องเขาสิครับว่ามันทำยังงั้ยครับ มันเขียนได้หลายแบบ ไม่ได้มีวิธีเดียว
การทำ Auto run นะครับรู้อันไหนบอกไปมันผิดหรือป่าวครับ ผมก้อมีเยอะเลือกเอาสั้น ๆ
ง่าย ๆ มาให้เขาดู แล้วที่มัน + ขึ้นที่ละ 1 มันผิดหรือป่าวครับ คุณ + เลขขึ้นที่ ละ 2 เหรอ
|
ประวัติการแก้ไข 2013-12-19 11:51:11
 |
 |
 |
 |
Date :
2013-12-19 11:47:45 |
By :
angelrings0 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ครับ สะกดแบบนี้
|
 |
 |
 |
 |
Date :
2013-12-19 11:50:53 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณมากๆน่ะคับ พวกพี่ ผมทำได้แล้ว แต่ก็ขอโทดด้วย่นะคับที่ทำให้ทะเลาะกัน
|
 |
 |
 |
 |
Date :
2014-01-22 23:05:38 |
By :
ดหกฟฟ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คือทำการรัน ID Auto แต่เมื่อเราแก้ไข หรือลบข้อมูลนั้นไป เราต้องการบันทึกใหม่แต่ระบบไม่รัน ID Auto ต่อจาก ID ตัวสุดท้ายให้ แต่กลับรันเป็น 0 แทน พอเพิ่มอีกครั้ง ID กลับไม่รันให้
|
 |
 |
 |
 |
Date :
2014-02-08 09:58:37 |
By :
AuMJaNg |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|