Wrox Programmer Forums
Go Back   Wrox Programmer Forums > Microsoft Office > Access and Access VBA > Access
Access Discussion of Microsoft Access database design and programming. See also the forums for Access ASP and Access VBA.
Welcome to the p2p.wrox.com Forums.

You are currently viewing the Access section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
Old January 31st, 2005, 12:49 PM
Friend of Wrox
Join Date: Jan 2005
Posts: 100
Thanks: 0
Thanked 0 Times in 0 Posts

Hmmm. I have tried to run that function an it is fine!

Have you had to modify the function in any way??? If not paste the following duplicate into a new module and run the TransposeTable sub below.


Sub TransposeTable()
    Transposer "suppliers", "tbl_New_Suppliers"
End Sub

Function Transposer(strSource As String, strTarget As String)
 Dim db As DAO.Database
 Dim tdfNewDef As DAO.TableDef
 Dim fldNewField As DAO.Field
 Dim rstSource As DAO.Recordset, rstTarget As DAO.Recordset
 Dim i As Integer, j As Integer

 On Error GoTo Transposer_Err

 Set db = CurrentDb()
 Set rstSource = db.OpenRecordset(strSource)

 rstSource.MoveLast ' Create a new table to hold 'the transposed data.

 ' Create a field for each record in the original table.
 Set tdfNewDef = db.CreateTableDef(strTarget)
 For i = 0 To rstSource.RecordCount
    Set fldNewField = tdfNewDef.CreateField(CStr(i + 1), dbMemo)
     tdfNewDef.Fields.Append fldNewField
 Next i

 db.TableDefs.Append tdfNewDef ' Open the new 'table and fill the first field with field‘names from the original table.

 Set rstTarget = db.OpenRecordset(strTarget)
 For i = 0 To rstSource.Fields.Count - 1
       With rstTarget
        .Fields(0) = rstSource.Fields(i).Name
      End With
 Next i
 rstTarget.MoveFirst ' Fill each column of the new table with a record from the original table.

 For j = 0 To rstSource.Fields.Count - 1

 'Begin with the second field, because the first field already contains the field names.
    For i = 1 To rstTarget.Fields.Count - 1
      With rstTarget
        .Fields(i) = rstSource.Fields(j)
      End With
   Next i
 Next j
  Exit Function
   Select Case Err
        Case 3010
           MsgBox "The table " & strTarget & " already exists."
        Case 3078
            MsgBox "The table " & strSource & " doesn 't exist."
         Case Else
             MsgBox CStr(Err) & " " & _
       End Select
     Exit Function
 End Function

Old January 31st, 2005, 01:10 PM
Friend of Wrox
Join Date: Aug 2004
Posts: 159
Thanks: 0
Thanked 0 Times in 0 Posts

Sorry JpJoe !
I had worked the NewTb by myself and i've cut the code for CreateTable
because i didn't believe it would work. As they say in flying schools
the plane goes by itself, who puts it down is the pilot.
Thank u very much !

Old February 1st, 2005, 04:43 AM
Friend of Wrox
Join Date: Jan 2005
Posts: 100
Thanks: 0
Thanked 0 Times in 0 Posts

No Problem,
Glad to be of help.;)

Similar Threads
Thread Thread Starter Forum Replies Last Post
Error When Running Stored Procedure Dwizz SQL Server 2000 4 May 15th, 2007 09:07 AM
Running oracle stored procedure from access Justine Access 9 December 21st, 2006 09:36 AM
Running stored procedure in Access VBA Bryon Burbage Access VBA 0 July 21st, 2006 09:14 AM
Check the strored procedure running in ASP code kapi.goel ASP.NET 1.0 and 1.1 Professional 0 May 17th, 2006 12:19 AM
ASP Code running Stored Procedure kapi.goel ASP.NET 1.0 and 1.1 Basics 0 May 17th, 2006 12:19 AM

Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.