Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 318
  • Last Modified:

Data type of a table field

Is there any way to find out the data type of a field of a table?

in the following code, how can I find out the data type of rs.fields(1).

Set cn = CurrentProject.Connection
    rs.CursorLocation = adUseClient
    
    sql = "SELECT * FROM Master WHERE ID>100 ORDER BY ID"
    rs.Open sql, cn, adOpenDynamic, adLockOptimistic

    With rs
        ......
        ......
        ......
        ......
    end with

Open in new window

0
MnInShdw
Asked:
MnInShdw
  • 2
  • 2
  • 2
1 Solution
 
Pratima PharandeCommented:
try this

refer

http://bytes.com/topic/access/answers/601180-find-field-data-type-vba
http://allenbrowne.com/func-06.html

 
Dim intNumberofFields As Integer, intFieldType As Integer, strTypeName As String 
  
Dim fld As Field, intCounter As Integer, strFieldName As String 
  
intNumberofFields = CurrentDb.TableDefs("tblEmployee").Fields.Count 
  
For intCounter = 0 To intNumberofFields - 1 
  strFieldName = CurrentDb.TableDefs("tblEmployee").Fields(intCounter).Name 
  intFieldType = CurrentDb.TableDefs("tblEmployee").Fields(intCounter).Type 
    Select Case intFieldType 
      Case 2    'Byte 
        strTypeName = "Byte" 
      Case 3    'Integer 
        strTypeName = "Integer" 
      Case 4    'Long 
        strTypeName = "Long" 
      Case 6    'Single 
        strTypeName = "Single" 
      Case 7    'Double 
        strTypeName = "Double" 
      Case Else 'Not a Number 
        strTypeName = "N/A" 
    End Select 
     Debug.Print Format(intCounter + 1, "00") & ") " & strFieldName & " - " & strTypeName 
Next intCounter

Open in new window

0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
How about this:

Dim cn, sql, rs As ADODB.Recordset
Dim tType
Set cn = CurrentProject.Connection
    rs.CursorLocation = adUseClient
   
    sql = "SELECT * FROM Master WHERE ID>100 ORDER BY ID"
    rs.Open sql, cn, adOpenDynamic, adLockOptimistic

    With rs
       tType = Choose(.Fields(1).Type, "Yes/N0", "Byte", "Integer", "Long", "Currency", "Single", "Double", "Date/Time", "Binary", "Text", "OLE Object", "Memo")
       Debug.Print tType
    End With

mx
0
 
MnInShdwAuthor Commented:
mx:
your suggested code behaves strange:
.Fields(1).Type for Text Data types returns 202.

More over the indexes in Choose statement are shifted. I believe it's because the items in choose doesn't follow the following list.

Still I can't understand what this 202 is.

The code suggested by pratima_mcs works perfect.
Since I prefer to work with recordset., I'll wait for some more suggestions.
Otherwise I will accept pratima_mcs' code.


thank you
vbEmpty 0 (uninitialized) 
vbNull 1(no valid data) 
vbInteger 2 
vbLong 3
vbSingle 4 
vbDouble 5 
vbCurrency 6
vbDate 7 
vbString 8 
vbObject 9 
vbError 10
vbBoolean 11 
vbVariant 12 
vbDataObject 13 
vbDecimal 14 
vbByte 17 
vbLongLong 20 
vbUserDefinedType 36 
vbArray 8192

Open in new window

0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
Pratima PharandeCommented:
Glad to help you
0
 
MnInShdwAuthor Commented:
Million Thanks
0
 
DatabaseMX (Joe Anderson - Microsoft MVP, Access and Data Platform)Commented:
I got the Types from the image below - on Allen's site.  If you are using the solution above, then you are missing several data types, including Text!  The Indexes in the Choose statement directly correspond to the Types shown in the image below.

mx
Capture1.gif
0

Featured Post

Efficient way to get backups off site to Azure

This user guide provides instructions on how to deploy and configure both a StoneFly Scale Out NAS Enterprise Cloud Drive virtual machine and Veeam Cloud Connect in the Microsoft Azure Cloud.

  • 2
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now