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 > กำหนด Format Autonumber ใน Access 2003 แล้วแสดงข้อมูลใน VB.net



 

กำหนด Format Autonumber ใน Access 2003 แล้วแสดงข้อมูลใน VB.net

 



Topic : 044289



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



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



คือแบบว่า กำหนด Format autonumber ใน access เป็น 0000 (เพราะมันเป็น autonumber เลยใส่ตัวอักษรไม่ได้...รึเปล่าคะ?) ใน access ก็ขึ้นนะ เช่น 0001, 0002, 0003 แต่พอไปเรียกมาแสดงใน VB.net ขึ้นแค่ 1, 2, 3

พอจะมีวิธีให้นำศูนย์ข้างหน้ามาแสดงมั้ยคะ?

แล้วถ้าจะให้มีตัวอักษรด้วยแบบ E0001, E0002, E0003 จะมีวิธีไหนหรอคะ??



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-06-21 13:44:46 By : akura View : 8208 Reply : 11
 

 

No. 1



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



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


ถ้าเป็น ACCESS ให้เอามาเขียนที่ .NET ค่ะ
เพราะ Access เน้นใช้ Macro ไม่ค่อยมี build-in function ให้ใช้






Date : 2010-06-21 13:50:25 By : blurEyes
 


 

No. 2



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



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

คือเขียน code autonumber ใน .net หรอคะ??
Date : 2010-06-21 13:59:36 By : akura
 

 

No. 3

Guest


มีตัว e แล้วมันจะเป็น number ได้ไง

------------------------------------------------

ให้เพิ่มอีก field ไว้เก็บรหัสดีกว่า โดยอ้างอิงจาก autonumber

ส่วนจะเก็บอย่างไร ต้องอาศัยโค้ดของ .net
Date : 2010-06-21 14:20:19 By : tungman
 


 

No. 4



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



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

นี่แหละคะประเด็น =w=

ไม่รู้ทำไง พอดีเป็นมือใหม่ VB เพิ่งจะจับไม่ถึงเดือน แฮะๆ


ขอความกรุณาด้วยค่ะ > <
Date : 2010-06-21 15:30:43 By : akura
 


 

No. 5



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



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

ถ้าต้องการเลขรันแบบ E0001, E0002, E0003
ก็ต้องไป set data type ใน access เป็น text
แล้วเขียนโค้ดรัน number เองครับ ตัวอย่าง
ในบอร์ดน่าจะมีครับ
Date : 2010-06-21 16:31:36 By : tee
 


 

No. 6



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



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

ขอบคุณค่ะ เขียนแล้วเหมือนกัน แต่ไม่รู้ว่าถูก syntax ป่าว เพราะเขียนเองคะ เหอๆ

Dim conDB As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\DataHead.mdb"
Dim con As New OleDbConnection(conDB)
con.Open()

Dim query As String
query = "SELECT CodeAbsent "
query &= "FROM tblAbsent ORDER BY CodeAbsent deas"

Val(query)
Dim sum As Integer
sum = query + 1
Str(query)
Date : 2010-06-21 16:39:39 By : akura
 


 

No. 7



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



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


ส่วนนี้เป็น
DATA ACCESS LAYER ของ MS ACCESS ค่ะ
สร้าง CLASS มาใหม่แล้ว copy แปะ
Code (VB.NET)
Imports System
Imports System.Data
Imports System.Data.OleDb
Imports System.IO
Imports System.Text
Imports System.Collections
Imports System.Collections.Generic

Imports System.Runtime.CompilerServices

'' Simple MsAccess Data Access Layer
'' Develop by Proud PNK.R. U.
'' Date 21-06-2010
'' Purpose : Provide neccessary method for manipulate Ms Access database through OleDB.
'' Some suggestion feature : Can be connect ACCESS 2007 (*.ACCDB) and common ACCESS (*.MDB) with auto detection.
''                           But i not yet to test with .MDB ,'coz my machine no have it. ~> <~

Namespace OleDbWithMSAccess

    Public Enum MSAccessVersionInfo
        AccessCommon = 1
        Access2007 = 2

    End Enum

    Public Class MSAccessConnectionArgs

        Private Const constAccess2007ConnectionStringFrame = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};" _
            & "Persist Security Info=False;"
        Private Const constAccess2007ConnectionStringFrameWithUserNameAndPassword = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};" _
            & "Jet OLEDB:Database Password={1};"

        Private Const constAccessCommonConnectionStringFrame = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};" _
            & "Persist Security Info=False;"
        Private Const constAccessCommonConnectionStringFrameWithUserNameAndPassword = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};" _
            & "User Id=admin;Password={1};"

        Private Const constMsAccessCommandParameterPrefix As String = "@"

        Private _VersionInfo As MSAccessVersionInfo = MSAccessVersionInfo.AccessCommon
        Private _DataBaseFile As String = String.Empty
        Private _HasUserName As Boolean = False
        'Private _UserName As String = String.Empty
        Private _Password As String = String.Empty

        Public Property VersionInfo() As MSAccessVersionInfo
            Get
                Return _VersionInfo
            End Get
            Set(ByVal value As MSAccessVersionInfo)
                _VersionInfo = value
            End Set
        End Property
        Public Property DataBaseFileName() As String
            Get
                Return _DataBaseFile
            End Get
            Set(ByVal value As String)
                _DataBaseFile = value
                If ((_UserName.Length = 0) And (_Password.Length = 0)) Then
                    _HasUserName = False
                Else
                    _HasUserName = True
                End If

                'Auto detect version from file extension
                Dim fileExtension As String = _DataBaseFile.Substring(_DataBaseFile.LastIndexOf("."c) + 1).ToUpper()
                If (fileExtension.Equals("ACCDB")) Then
                    _VersionInfo = MSAccessVersionInfo.Access2007
                Else
                    _VersionInfo = MSAccessVersionInfo.AccessCommon
                End If

            End Set
        End Property
        'Public Property UserName() As String
        '    Get
        '        Return _UserName
        '    End Get
        '    Set(ByVal value As String)
        '        _UserName = value
        '        If ((_UserName.Length = 0) And (_Password.Length = 0)) Then
        '            _HasUserName = False
        '        Else
        '            _HasUserName = True
        '        End If

        '    End Set
        'End Property
        Public Property Password() As String
            Get
                Return _Password
            End Get
            Set(ByVal value As String)
                _Password = value
                If (_Password.Length = 0) Then
                    _HasUserName = False
                Else
                    _HasUserName = True
                End If
            End Set
        End Property
        Public Property HasUserNameAndPassword() As Boolean
            Get
                Return _HasUserName
            End Get
            Set(ByVal value As Boolean)
                _HasUserName = value
            End Set
        End Property

        Public Sub New()
        End Sub

        Public Sub New(ByVal argVersionInfo As MSAccessVersionInfo)
            Me.VersionInfo = argVersionInfo
        End Sub
        Public Sub New(ByVal argVersionInfo As MSAccessVersionInfo, ByVal argDatabaseFileName As String)
            Me.VersionInfo = argVersionInfo
            Me.DataBaseFileName = argDatabaseFileName
        End Sub

        Public Function IsReadyToConnect() As Boolean
            Return (Me.DataBaseFileName.Length = 0)
        End Function

        Public Function GetConnectionString() As String
            Dim retStr As String = String.Empty
            Dim ConnStr As String = String.Empty

            If (Me.VersionInfo = MSAccessVersionInfo.AccessCommon) Then

                If (Me.HasUserNameAndPassword) Then
                    retStr = String.Format(constAccessCommonConnectionStringFrameWithUserNameAndPassword _
                                           , Me.DataBaseFileName, Me.Password)
                Else
                    retStr = String.Format(constAccessCommonConnectionStringFrame _
                                           , Me.DataBaseFileName)
                End If
            Else

                If (Me.HasUserNameAndPassword) Then
                    retStr = String.Format(constAccess2007ConnectionStringFrameWithUserNameAndPassword _
                                           , Me.DataBaseFileName, Me.Password)
                Else
                    retStr = String.Format(constAccess2007ConnectionStringFrame _
                                           , Me.DataBaseFileName)
                End If

            End If

            Return retStr
        End Function

    End Class

    Public Class MsAccessSQLCommandArgs

        Public ConnectionArgs As MSAccessConnectionArgs = New MSAccessConnectionArgs()
        ''' <summary>
        ''' Command String with SQL Statement [If you would like to use 'LIKE' 
        ''' operator only wildcard charactor '%' works for any charactor]
        ''' </summary>
        ''' <remarks></remarks>
        ''' 
        Public CommandStr As String = String.Empty
        Public CommandParameters As Hashtable = New Hashtable()

        Public Sub New()

        End Sub

        Public Sub ClearAll()
            CommandStr = String.Empty
            CommandParameters = New Hashtable()
        End Sub

        Public Sub ClearParameters()
            CommandParameters = New Hashtable()
        End Sub

        Public Sub AddParameter(ByVal argKey As String, ByVal argValue As Object)
            CommandParameters.Add(argKey, argValue)
        End Sub

    End Class

    Module MsAccessExtension

        Private Const constMsAccessCommandParameterPrefix As String = "@"

        <Extension()> _
        Public Sub ExecuteCommand(ByVal e As MsAccessSQLCommandArgs)
            Using myConnection As OleDbConnection _
                = New OleDbConnection(e.ConnectionArgs.GetConnectionString())

                Dim myCommand As OleDbCommand _
                    = New OleDbCommand(e.CommandStr, myConnection)

                myCommand.CommandType = CommandType.Text

                If (e.CommandParameters.Count > 0) Then

                    For Each keyStr As String In e.CommandParameters.Keys
                        Dim tempKey As String = keyStr
                        If (Not keyStr.Substring(0, 1).Equals(constMsAccessCommandParameterPrefix)) Then
                            tempKey = constMsAccessCommandParameterPrefix & tempKey
                        End If
                        myCommand.Parameters.AddWithValue(tempKey, e.CommandParameters(keyStr))
                    Next

                End If

                Try
                    myConnection.Open()
                    myCommand.ExecuteNonQuery()
                Catch ex As Exception
                    Throw New Exception(ex.Message)
                Finally
                    If Not (myConnection Is Nothing) Then
                        myConnection.Close()
                    End If
                End Try

            End Using
        End Sub

        <Extension()> _
        Public Function ExecuteCommandScalar(ByVal e As MsAccessSQLCommandArgs) As Object

            Dim oRet As Object = Nothing

            Using myConnection As OleDbConnection _
                = New OleDbConnection(e.ConnectionArgs.GetConnectionString())

                Dim myCommand As OleDbCommand _
                    = New OleDbCommand(e.CommandStr, myConnection)

                myCommand.CommandType = CommandType.Text

                If (e.CommandParameters.Count > 0) Then

                    For Each keyStr As String In e.CommandParameters.Keys
                        Dim tempKey As String = keyStr
                        If (Not keyStr.Substring(0, 1).Equals(constMsAccessCommandParameterPrefix)) Then
                            tempKey = constMsAccessCommandParameterPrefix & tempKey
                        End If
                        myCommand.Parameters.AddWithValue(tempKey, e.CommandParameters(keyStr))
                    Next

                End If

                Try
                    myConnection.Open()
                    oRet = myCommand.ExecuteScalar()
                Catch ex As Exception
                    Throw New Exception(ex.Message)
                Finally
                    If Not (myConnection Is Nothing) Then
                        myConnection.Close()
                    End If
                End Try

                Return oRet

            End Using
        End Function

        ''' <summary>
        ''' Return DataTable from MsAccessSQLCommandArgs
        ''' </summary>
        ''' <param name="e"></param>
        ''' <returns></returns>
        ''' <remarks></remarks>
        <Extension()> _
        Public Function GetDataTable(ByVal e As MsAccessSQLCommandArgs) As DataTable

            Dim dtRet As DataTable = New DataTable()

            Using myConnection As OleDbConnection _
                = New OleDbConnection(e.ConnectionArgs.GetConnectionString())

                Dim myCommand As OleDbCommand _
                    = New OleDbCommand(e.CommandStr, myConnection)

                myCommand.CommandType = CommandType.Text

                If (e.CommandParameters.Count > 0) Then

                    For Each keyStr As String In e.CommandParameters.Keys
                        Dim tempKey As String = keyStr
                        If (Not keyStr.Substring(0, 1).Equals(constMsAccessCommandParameterPrefix)) Then
                            tempKey = constMsAccessCommandParameterPrefix & tempKey
                        End If
                        myCommand.Parameters.AddWithValue(tempKey, e.CommandParameters(keyStr))
                    Next

                End If
                Dim myDataAdaptor As OleDbDataAdapter = New OleDbDataAdapter(myCommand)

                Try
                    myConnection.Open()
                    myDataAdaptor.Fill(dtRet)

                Catch ex As Exception
                    Throw New Exception(ex.Message)
                Finally
                    If Not (myConnection Is Nothing) Then
                        myConnection.Close()
                    End If
                End Try

                Return dtRet

            End Using
        End Function

    End Module

End Namespace




Date : 2010-06-22 13:01:00 By : blurEyes
 


 

No. 8



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



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


ตอนใช้งาน ก็ประมาณนี้ค่ะ
Code (VB.NET)
Imports VB.OleDbWithMSAccess

Public Class Form1

    Private AppConnectionArg As MSAccessConnectionArgs = New MSAccessConnectionArgs()
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        AppConnectionArg.VersionInfo = MSAccessVersionInfo.Access2007
        AppConnectionArg.DataBaseFileName = "D:\BIN\Northwind 2007.accdb"


        Dim cmd As MsAccessSQLCommandArgs = New MsAccessSQLCommandArgs()
        cmd.ConnectionArgs = AppConnectionArg
        cmd.CommandStr = "SELECT MAX(ID) FROM [Employees] "
       
        Dim Counter As Integer =  CInt(cmd.ExecuteCommandScalar())
        Counter += 1
        
        Dim IDStr As String = "E" & Counter.ToString("00000")

    End Sub

End Class

Date : 2010-06-22 13:05:45 By : blurEyes
 


 

No. 9



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



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

อยากเข้าใจโค้ดด้วย อันนี้จะรบกวนมากไปรึเปล่าคะ > <

ขอโทษด้วยนะคะ

แล้วก็ขอบคุณสำหรับโค้ดมากค่ะ จะลองดู
Date : 2010-06-22 13:22:44 By : akura
 


 

No. 10



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



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


code พราวเขียนทดลองค่ะ ว่า method extension จะไปกันได้กับ vb หรือเปล่า
สงสัยตรงไหนก้อถามมาดีกว่าค่ะ เรียนแบบอุดมศึกษา ก้อจะประมาณนี้แหละค่ะ

มาดู code ตัวเองอีกที เอ๋อรับทานค่ะ
ต้องงี้

Code (VB.NET)
Imports VB.OleDbWithMSAccess

Public Class Form1

    Private AppConnectionArg As MSAccessConnectionArgs = New MSAccessConnectionArgs()
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        AppConnectionArg.VersionInfo = MSAccessVersionInfo.Access2007
        AppConnectionArg.DataBaseFileName = "D:\BIN\Northwind 2007.accdb"       
        
        Dim IDStr As String = "E" & Counter.ToString("00000")

    End Sub

    Function NewAutoNumber (ByVal c As MSAccessConnectionArgs ) As String
        
        Dim Counter As Integer = 0 
        Dim cmd As MsAccessSQLCommandArgs = New  MsAccessSQLCommandArgs()
        cmd.ConnectionArgs = c
        'Field ID มี Type เป็น TEXT นะคะ
        cmd.CommandStr = "SELECT MAX(ID) FROM [TableName] "
        Dim tempStr As String = cmd.ExecuteCommandScalar().ToString()
        
        Counter = CInt(tempStr.SubString(1)) 'ตัดตัวอักษรออก แล้วเปลี่ยนเป็น integer
        Counter += 1

        tempStr = "E" + Counter.ToString("000000")
      
        Return tempStr         

    End Function
    


End Class

Date : 2010-06-22 15:01:12 By : blurEyes
 


 

No. 11

Guest


ค่าใหม่ : เพิ่มค่า
รูปแบบ : \E0000
ใส่ดัชนี : ไม่ซ้ำกัน
Date : 2015-12-05 12:07:32 By : Arisa
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : กำหนด Format Autonumber ใน Access 2003 แล้วแสดงข้อมูลใน 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 01
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 อัตราราคา คลิกที่นี่