Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > Auto Number เพิ่มรหัสตั้งแต่ 11 ขึ้นไปเพิ่มไม่ได้ช่วยอีกทีท่านเทพ [vb.net]



 

Auto Number เพิ่มรหัสตั้งแต่ 11 ขึ้นไปเพิ่มไม่ได้ช่วยอีกทีท่านเทพ [vb.net]

 



Topic : 052333



โพสกระทู้ ( 147 )
บทความ ( 0 )



สถานะออฟไลน์




คือต่อเพิ่มข้อมูล มัน OK นะ แต่พอเราลบ ไป 1 แถวในรหัสในฐานข้อมูล เช่น 1-2-3-4-5-6 แล้วเราลบรหัส 5 ไป แล้วทำการเพิ่มข้อมูลใหม่มันยังนับ เป็นนับรหัสเป็น 6 ทำไม่มันไม่นับเป็น 7 หรือว่าทำส่วนไหนไม่ถูกหรือป่าว ช่วยหน่อยคับ

Code (VB.NET)
 Private Sub AutoRune() '--------------------------------------- > (PAGE Call AutoNumber )
        Dim tmpNumber As Integer
        Dim ComEdit As New OleDbCommand 
        Dim sqlCheckNumber As String
        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")
                tmpNumber = 0 + i

                For i = 0 To dataset.Tables("pro").Rows.Count + 1
                    tmpNumber = 0 + i
                 Next

                txtComment_ID.Text = Format(CInt(tmpNumber.ToString("000"))) 
 
                Return
            End With
        End With
    End Sub



รูปหน้าการทำงาน



Tag : .NET, VB.NET, VS 2008 (.NET 3.x)









ประวัติการแก้ไข
2010-11-27 16:37:51
2010-11-27 16:38:25
2010-11-27 16:41:38
2010-11-27 16:54:34
2010-11-27 16:57:32
2010-11-29 14:41:05
2010-11-29 15:18:11
2010-11-29 15:18:51
2010-11-29 15:47:41
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-11-27 16:35:28 By : angelrings0 View : 10917 Reply : 55
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ใช้ Auto_Number หรือเปล่าครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-27 18:13:25 By : webmaster
 


 

No. 2



โพสกระทู้ ( 119 )
บทความ ( 0 )



สถานะออฟไลน์


ลองเอาชุดนี้ไปลองดู เป็นส่วนของการ 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
 

 

No. 3



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


ในเมื่อคุณใช้วิธี ดึงเอาค่า 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
 


 

No. 4



โพสกระทู้ ( 147 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณคับสหรับทุกคำตอบ จะลองทำดูนะครับ Autorun_Number ตามที่แนะนำนะคับ
แต่ลองมาหลาย ๆ อย่างละ มันไม่ไปสักที ไ่ม่เหมือน vb ธรรมดาเลย ทำง่ายก่่านี้อีก
แต่ก้อขอบคุณคับทำไป เดียวก้อคงได้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-29 08:08:23 By : angelrings0
 


 

No. 5

Guest


กำหนดเป็น auto increament ง่ายกว่า vb ธรรมดาตั้งเยอะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-29 09:05:05 By : ตังค์แมน
 


 

No. 6



โพสกระทู้ ( 147 )
บทความ ( 0 )



สถานะออฟไลน์


ถ้าทำเป็น auto increament มันง่ายก้อจิงแต่เวลา ทำการนำข้อมูลมาแสดงสิครับ
มันทำยากนะคับ ถึงผมจะมือใหม่ .net แต่ก้อพอจะรู้นะคับ ทำเป็น Auto number มันจะดีกว่าคับ
เลยพยายามทำ แต่ทำเท่าไหร่ก้อทำไม่้ได้สักที

อยากถามผู้รู้ว่าจะทำงั้ยให้สามารถ เช็คได้ว่า เลขรหัสในฐานข้อมูลตัวสุดท้าย เป็น RecordCount ที่เท่าไหร่
ถ้าเป็น vb ธรรมดา มันใช่มันทำได้ตาม code ข้างล่าง แต่ .net มันเช็คอย่างงั้ยคับ

Code นี้เป็น Auto number vb.6

Code
Private Sub Autorune() '--------------------------------------- > (PAGE Call AutoNumber ) Dim Autorun As Integer If mskid_docter.Text = "______" Then mskid_docter.Text = "000001" Else Sqlsa = "select id_docter from savedocter order by id_docter asc" Set Res = New ADODB.Recordset Res.Open Sqlsa, Cnn, adOpenStatic, adLockReadOnly If Res.RecordCount > 0 Then Res.MoveLast Autorun = Val(mskid_docter.Text) mskid_docter.Text = Format(CInt(Res!id_docter) + 1, "000000") Else mskid_docter.Text = "000001" Res.Close End If End If End Sub


ถ้าสามารถเช็คได้เหมือน นี้เลยจะทำได้หรือป่าวคับเพราะถ้าสามารถชี้ Record
ได้แล้วก้อจะสามารถทำ การ ลบ เพิ่ม มันก้อไม่กระทบเลย


ประวัติการแก้ไข
2010-11-29 09:40:39
2010-11-29 09:41:19
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-29 09:40:13 By : angelrings0
 


 

No. 7

Guest


ให้ 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 : ตังค์แมน
 


 

No. 8

Guest


เลือกเอาแบบใดแบบหนึ่งนะ

แก้ "ถ้าทำให้" เป็น "ถ้าทำใน" ด้วย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-29 10:30:31 By : ตังค์แมน
 


 

No. 9



โพสกระทู้ ( 147 )
บทความ ( 0 )



สถานะออฟไลน์


มือใหม่ครับ ทำมา 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 หน้าจอการทำงานที่ทำการทดสอบ

หน้า main

ตามที่ทำเครื่องหมาย 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
 


 

No. 10



โพสกระทู้ ( 437 )
บทความ ( 0 )



สถานะออฟไลน์


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
 


 

No. 11



โพสกระทู้ ( 147 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณคับสำหรับ คำตอบที่หามานาน สุดยอด

เอาไปแก้ นิดหน่อยได้เลย สุดยอดจิง ๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-29 14:38:59 By : angelrings0
 


 

No. 12



โพสกระทู้ ( 147 )
บทความ ( 0 )



สถานะออฟไลน์


ขออีกที่คับ ทำได้ตั้งแต่ 1-10 ได้

แต่พอเริ่มเลขที่ 11 แล้วมันไม่ทำต่อไม่เข้า ใจ + ให้ หรือทำให้มันนับ ในloop for ก้อไม่ได้เหมือนกันคำตอบคือ 10 ตลอดเลย
รบกวนอีกทีคับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-29 15:49:40 By : angelrings0
 


 

No. 13



โพสกระทู้ ( 437 )
บทความ ( 0 )



สถานะออฟไลน์


คือผมไม่อ้าว 12 แล้วไม่เข้าใจอ่ะครับ ขอละเอียดกว่านี้หน่อย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-29 16:18:39 By : kaimuk
 


 

No. 14



โพสกระทู้ ( 147 )
บทความ ( 0 )



สถานะออฟไลน์


เพิ่มเลขที่ 11 ไม่ได้


ตาม 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
 


 

No. 15



โพสกระทู้ ( 437 )
บทความ ( 0 )



สถานะออฟไลน์


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
 


 

No. 16



โพสกระทู้ ( 147 )
บทความ ( 0 )



สถานะออฟไลน์


ลองแล้วคับ ผมลองไปเพิ่่ม ลำดับที่ 11 ลงใน access แล้วลองมากด add ที่ตัวโปรแกรมเพื่อเพิ่ม รหััสที่ 12 มันก้อยังนับเป็น 10 อยู่นะครับ
ไม่รู้ว่าเพราะอะไร
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-30 08:51:53 By : angelrings0
 


 

No. 17

Guest


หุหุ ไม่ช่วยหรอก จนกว่าจะเปลี่ยนไปใช้ autonumber เมือนชาวบ้านเขาก่อน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-30 09:04:08 By : ตังค์แมน
 


 

No. 18



โพสกระทู้ ( 437 )
บทความ ( 0 )



สถานะออฟไลน์


ผมพอจะนึกออกและ
จขกท น่าจะเก็บ ID เป็น String ใช้ไหมครับ ลองเปลี่ยน Type เป็น Int ดูปัญหาน่าจะจบนะครับ
แต่ถ้าไม่ใช้ขอดูหน้า Design ของ Database ด้วยครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-30 09:49:14 By : kaimuk
 


 

No. 19



โพสกระทู้ ( 147 )
บทความ ( 0 )



สถานะออฟไลน์


เหอะ ๆๆ คนเรา ต้องลองทำอะไร ที่ต่างจากคนอื่นบาง คับ จะเอาของคนอื่นมาก้อต่อเมื่อเราจำเป็นครับ

อย่างที่มีคนพูดไว้ นะคับ คิดใหม่ ทำใหม่บ้าง จะได้มี วิธีใหม่ ๆ หรือทางเลือกใหม่ ๆ ในการเลือกใช้งานคับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-30 11:38:45 By : angelrings0
 


 

No. 20



โพสกระทู้ ( 147 )
บทความ ( 0 )



สถานะออฟไลน์


รูปตารางใน Data Base Access ที่เก็บข้อมูล

Database

รูป ข้อมูลใน 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
 


 

No. 21

Guest


Quote:
เหอะ ๆๆ คนเรา ต้องลองทำอะไร ที่ต่างจากคนอื่นบาง คับ จะเอาของคนอื่นมาก้อต่อเมื่อเราจำเป็นครับ

อย่างที่มีคนพูดไว้ นะคับ คิดใหม่ ทำใหม่บ้าง จะได้มี วิธีใหม่ ๆ หรือทางเลือกใหม่ ๆ ในการเลือกใช้งานคับ


- เข้าใจผิดแล้ว มันไม่ใช่วิธีใหม่หรอกนะ แต่เป็นวิธีที่ผิดต่างหาก แต่ก็ตามสะดวก แค่แนะเฉยๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-30 11:56:28 By : ตังค์แมน
 


 

No. 22



โพสกระทู้ ( 147 )
บทความ ( 0 )



สถานะออฟไลน์


ครับ ผมก้อลองไปเรื่อย ๆ แหละ คับ ไม่ได้เป็นโปรแจคอะไรหรอกคับ แค่เขียนไว้เก็บข้อมูล ในบริษัท ในส่วนที่ผมรับผิดชอบ ไม่อยากเก็บ
ไว้ใน Excel นะคับ เพราะแต่ก่อนใช้ vb6 ตอนนี้มาใช้ .net มันติดปัญหาในส่วนของการ Auto number แค่ที่เดียวอย่างอื่นทำหมดแล้วคับ
แค่ไม่เข้าใจว่าทำมัยถึงเป็นอย่างนี้ เผื่อคนอื่น ๆ เจอปัญหาจะได้รู้ว่าัมันเกิดจากอะไรนะคับ ดูโค๊ตที่ผมเขียนเอานะคับผม ชอบเอาของที่ยาก
แลกซับซ้อนมาทำให้มันดูง่ายขึ้น โค๊ดสั้น ๆ แต่ได้ตามต้องการคับ ไม่ต้อง เช็คเงื่อนไขให้มันยุ่งยากนะคับ ดูบ้างคนเขียนแล้วผม งง นะ เพราะ
โค๊ดเยอะมากแค่ทำการ save ข้อมูล จะต้องเช็คอะไรให้มันมาก เช็คเงื่อนไข ว่าครบหรือป่าว ชี้ว่าไปที่ให้ อัป หรือแก้ไข อย่างไร ของผมสั้น ๆ
และได้ใจความนะผมคิดว่านะ แต่คนที่เขียนโปรแกรมทุกคน เขียนมาไม่เหมือนกันคับ 10 คนก้อ 10 อย่างแต่ได้ผล ออกมาเหมือนกันคับ
ว่าหรือป่าว ไม่ได้ว่าใครนะคับ แต่ผมมือใหม่ .net ไม่รู้ ในส่วนไหนแก้ไขไม่ได้ ก้อต้องลองถามผู้รู้แหละคับ ว่ามันเป็นเพราะอะไร

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


ประวัติการแก้ไข
2010-11-30 12:26:17
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-30 12:24:09 By : angelrings0
 


 

No. 23



โพสกระทู้ ( 147 )
บทความ ( 0 )



สถานะออฟไลน์


Ok ได้แล้วครับ ไม่ได้ไปดูใน Data base Save ชนิดข้อมูลเป็น Text มันเลยไม่ทำให้ คับ
ต้องเปลี่ยน จาก Text เป็น Number ก้อได้แล้วคับ ขอบคุณครับสำหรับทุก ๆ คำตอบ ขอบคุณมาก ๆ คับผม
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-30 12:47:43 By : angelrings0
 


 

No. 24

Guest


^_^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-30 13:18:10 By : ตังค์แมน
 


 

No. 25

Guest


ดีนะที่มันเป็น access นี่ถ้าเป็นพวก client server แล้ว user request id พร้อมกันทีละหลายคน

ไม่ทราบว่าจะจัดการเรื่อง duplicate id ยังไงจ๊ะ

ปล. แค่แนะนำเฉยๆ ไม่ต้องใส่ใจนะจ๊ะ ไม่เกี่ยวกับข้าพเจ้าอยู่แล้ว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-30 13:23:23 By : ตังค์แมน
 


 

No. 26



โพสกระทู้ ( 437 )
บทความ ( 0 )



สถานะออฟไลน์


ในกรณีที่ จขกท. ยังต้องการให้ 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
 


 

No. 27



โพสกระทู้ ( 147 )
บทความ ( 0 )



สถานะออฟไลน์


ครับ ขอบคุณคับคือ อยากลอง 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
 


 

No. 28



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ตอบความคิดเห็นที่ : 27 เขียนโดย : angelrings0 เมื่อวันที่ 2010-11-30 15:00:04
รายละเอียดของการตอบ ::
อ่านแล้วแปลกๆ คุณเข้าใจยังไงครับ ไอ้ที่เค้าเรียกว่า auto number เนี้ย

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-30 15:06:46 By : PlaKriM
 


 

No. 29



โพสกระทู้ ( 147 )
บทความ ( 0 )



สถานะออฟไลน์


555 เขาแนะมาผม อ่านแล้วเข้าใจพอสมควรนะคับ ผมก้อทำมาตามที่เขาแนะมาตั้งแต่ต้นนะคับ ก้อได้นะคับ ไม่ผิดที่จะคิด -*-
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-30 15:08:22 By : angelrings0
 


 

No. 30



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


จริงๆ UI ไม่จำเป็นต้องบอกหรอกครับว่ารันไปถึงไหนแล้ว ใครบันทึกก่อนก็ได้ก่อน แค่นั้นแหละ

แต่ติดใจที่คุณบอกว่า
Quote:
อยากลอง access ดูนะคับ เพราะ มีน้อง ๆ เขาขอมาอยากได้ ไม่อยากทำเป็นแบบ SQL


อะไรคือ sql ครับ จริงๆ ไม่ใช่อะไรหรอก แค่สงสัยว่าคุณเข้าใจอะไรผิดหรือเปล่า
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-30 15:12:00 By : PlaKriM
 


 

No. 31



โพสกระทู้ ( 242 )
บทความ ( 0 )



สถานะออฟไลน์


แบบนี้ได้ป่าว สร้างขึ้นมา 1 Column ตั้งรูปแบบเป็น AutoNumber ส่วน ID ของคุณพี่ตั้งเป็น String เวลาจะบวกเพิ่มเข้าไป 1 ก็ดึง ID จากการเรียงของ ORDER BY AutoNumber ASC ก็น่าจะได้เลข สุดท้ายขึ้นมานะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-30 15:26:31 By : EucifeR
 


 

No. 32



โพสกระทู้ ( 147 )
บทความ ( 0 )



สถานะออฟไลน์


เข้าใจผิดเรื่องไรครับ ผมไม่รู้อะ ว่ามันผิดตรงอะไร งง

ครับถูกต้องคับ 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
 


 

No. 33



โพสกระทู้ ( 11,835 )
บทความ ( 10 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


AutoNumber ที่เขาพูดๆ กันนี่หมายถึง DataType นะท่าน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-30 15:33:59 By : PlaKriM
 


 

No. 34



โพสกระทู้ ( 147 )
บทความ ( 0 )



สถานะออฟไลน์


ครับ ลองไปดูที่ผม โพลรูปนะคับ ที่บอกก้อถูกคับ แต่ผมไม่ต้องการให้ ฐานข้อมูล auto เองนะคับอยาก
จะทำขึ้นมาเองเวลา กดปุ่ม add นะครับให้มันสร้างให้เราโดยผ่านจะโปรแกรมเองนะคับ

ผมหยุดเขียนมานานอาจจะตอบไม่ต้องประเด็นบ้าง -*-
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-11-30 15:39:34 By : angelrings0
 


 

No. 35



โพสกระทู้ ( 242 )
บทความ ( 0 )



สถานะออฟไลน์


เอิ๊ก ๆ ๆ งั้นท่านอื่นต่อเลยครับ สงสัยอยากจะทำ จาก 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
 


 

No. 36



โพสกระทู้ ( 45 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


อันนี้ของผมนะลองศึกษาดรับ 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
 


 

No. 37



โพสกระทู้ ( 45 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ต่อครับหมายเหตุนะครับ PRnumber คือ field ที่ให้รันเลขที่อัติโนมัตินะครับ txtPr.Text คือ textbox ที่แสดง autonum ครับไม่ต้องให้กรอกให้ textPr.Enable=fals ครับ ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-05-09 10:43:13 By : woraponc
 


 

No. 38



โพสกระทู้ ( 25 )
บทความ ( 0 )



สถานะออฟไลน์


ตอบความคิดเห็นที่ : 37 เขียนโดย : woraponc เมื่อวันที่ 2011-05-09 10:43:13
รายละเอียดของการตอบ ::
แล้วถ้าผมต้องการแบบว่า RUN1205-XXXX
^ ^ ^ = อักษรระบุ ประเภทตาราง
RUN1205-XXXX
^ ^ ^ ^ = yymm ปีและเดือนตามลำดับ
ปัญหาคือ เราจะนับ running number 4 หลักหลังยังไง
ขอแนวคิดหน่อยครับ ขอบคุณมากครับผม

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-03 12:03:23 By : NIFCO
 


 

No. 39

Guest


เก็บ running แยกอีก table คับ 2 คอลัม
คอลัมแรก Name เก็บ Run1205
คอลัมสอง RunningID เก็บ ตัวเลขRun
พอบันทึก ท่านก็มาเช็คคอลัม Name ว่าอยู่เดือนไหนปีไหน ได้เลขRun เท่าไร
ถ้าไม่เจอก้ insert Name ใหม่ใส่เดือนนั้น เลขรันใหม่
ก้จะได้เลขรันใหม่ทุกเดือนคับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-05-04 10:45:53 By : the man
 


 

No. 40



โพสกระทู้ ( 33 )
บทความ ( 0 )



สถานะออฟไลน์


ลองดูตัวนี้นะครับ เป็นการเขียนแบบบ้านๆนะครับ แต่ผลออกมาถือว่าดีครับ

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
 


 

No. 41

Guest


รบกวนพี่ส่ง ไฟล์ให้หน่อยคับ คือว่า ผมติดตรง autoid ทำงัยก็ทำไม่ได้ เป็นโปรเจคจบซะด้วย ไม่มีใครปรึกษาได้เลย เครียดมากเลยคับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-15 06:17:18 By : goandfriend
 


 

No. 42



โพสกระทู้ ( 697 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 41 เขียนโดย : goandfriend เมื่อวันที่ 2013-12-15 06:17:18
รายละเอียดของการตอบ ::
ติดตรงไหนครับ ถ้าผมทราบจะช่วยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-15 12:18:51 By : 01000010
 


 

No. 43

Guest


ผมทำระบบแจ้งซ่อม
คือว่า ผมจะทำให้ เลขที่ใบรับซ่อม มัน รัน 0001,0002 ไปเรื่อยๆคับ ศึกษามาหลายเว็ปก็ยังไม่เข้าใจเลย ผมทำ vb2010 เชื่อมต่อกับ access คับ





เป็นส่วนทีติดต่อกับฐานข้อมูล และอีกส่วนเพิ่มข้อมูล

ผิดถูกยังงัย ก็ช่วยแนะนำหน่อยคับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-17 01:34:52 By : ผู้อ่อนแอ
 


 

No. 44

Guest


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

พี่ๆช่วยผมหน่อยคับ

ถ้ามี Code อื่นๆ ที่ vb2010 เชื่อม กับ access ก็ขอด้วยคับ มาเป็นกรณีศึกษา ปวดหัวมานานแล้ว ไปห้องสุมดเอามาหลายเล่มก็ยังไม่เข้าใจ ทำตามก็ eror
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-17 01:43:19 By : ดหกฟฟ
 


 

No. 45

Guest


มรภ.เลย ฤ เปล่าเนี่ย Code คุ้นๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-17 12:33:15 By : 55
 


 

No. 46

Guest


ผมไปโหลดมาดูเป็นแนวคับ ไม่รู้ว่าของใคร มันเป็นไฟล์ pdf ที่เขียนว่า database คับ ถ้าผมผิด ณ จุดๆ นี้ ขออภัยอย่างสูงด้วยคับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-17 20:14:18 By : ดหฟก
 


 

No. 47



โพสกระทู้ ( 147 )
บทความ ( 0 )



สถานะออฟไลน์


เก่าเลยติดต่อกับ 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
 


 

No. 48

Guest


ขอบคุณคับ จะลองเปลี่ยนมาให้ sql
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-18 21:34:02 By : afdsfdsa
 


 

No. 49



โพสกระทู้ ( 147 )
บทความ ( 0 )



สถานะออฟไลน์


การทำเลขรหัส 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
 


 

No. 50

Guest


sql server ใช้ ident_current

mysql ใช้ select last_insert_id()

วิธี +1 บ้านนอกมาก
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-19 10:45:03 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 51



โพสกระทู้ ( 147 )
บทความ ( 0 )



สถานะออฟไลน์


คร๊าบพ่อคนเก่ง ก้อบอกวิธีน้องเขาไปสิครับ อย่าเก่งแค่ เอามาแปะครับ
แล้วมาว่าให้คนอื่นเขาครับ มันน่าเกียดเขาแชร์ ความรู้กันครับ ไม่ได้มาอวดรู้ครับ
ถ้าเก่งก้อบอก น้องเขาสิครับว่ามันทำยังงั้ยครับ มันเขียนได้หลายแบบ ไม่ได้มีวิธีเดียว
การทำ Auto run นะครับรู้อันไหนบอกไปมันผิดหรือป่าวครับ ผมก้อมีเยอะเลือกเอาสั้น ๆ
ง่าย ๆ มาให้เขาดู แล้วที่มัน + ขึ้นที่ละ 1 มันผิดหรือป่าวครับ คุณ + เลขขึ้นที่ ละ 2 เหรอ


ประวัติการแก้ไข
2013-12-19 11:51:11
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-19 11:47:45 By : angelrings0
 


 

No. 52

Guest


ครับ สะกดแบบนี้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-12-19 11:50:53 By : ห้ามตอบเกินวันละ 2 กระทู้
 


 

No. 53

Guest


ขอบคุณมากๆน่ะคับ พวกพี่ ผมทำได้แล้ว แต่ก็ขอโทดด้วย่นะคับที่ทำให้ทะเลาะกัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-01-22 23:05:38 By : ดหกฟฟ
 


 

No. 54



โพสกระทู้ ( 697 )
บทความ ( 0 )



สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 53 เขียนโดย : ดหกฟฟ เมื่อวันที่ 2014-01-22 23:05:38
รายละเอียดของการตอบ ::
พึ่งเคยเห็นว่าบอร์ดนี้มีคนทะเลากันด้วย

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-01-23 08:54:37 By : 01000010
 


 

No. 55

Guest


คือทำการรัน ID Auto แต่เมื่อเราแก้ไข หรือลบข้อมูลนั้นไป เราต้องการบันทึกใหม่แต่ระบบไม่รัน ID Auto ต่อจาก ID ตัวสุดท้ายให้ แต่กลับรันเป็น 0 แทน พอเพิ่มอีกครั้ง ID กลับไม่รันให้
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-02-08 09:58:37 By : AuMJaNg
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : Auto Number เพิ่มรหัสตั้งแต่ 11 ขึ้นไปเพิ่มไม่ได้ช่วยอีกทีท่านเทพ [vb.net]
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่