Nevermind the names. You should be able to address its index number
directly:

TargetRange.Offset(0, intColIndex).Value = rstRecordSet(intColIndex)

Why insert 32k + fields into Excel ? It will probably not make any sense in
a spreadsheet. What happens if you remove that field from your SQL, does it
still err ?

HTH. Best wishes Harald

"Braindeadbeachbum" <Braindeadbeachbum@discussions.microsoft.com> skrev i
melding news:5EA5B149-7254-477F-B58A-376BC1A7A986@microsoft.com...
> Hi Harald
>
> When I import using the complete recordset (Range("A2").CopyFromRecordset
> rstRecordSet) I receive the following error:
> Error - Automation error Unspecified error
>
> I will bet that it's due to the RTF field being to long or unrecognizable.

I
> know that the Excel limit per cell is 32 767 characters and don't believe

the
> field is larger than this but I still think that the RTF field is causing

the
> problem as it's the only thing that changed since the query worked.
>
> If I use the code attached the error is as follows:
> Error - Item cannot be found in the collection corresponding to the
> requested name or ordinal.
>
> If I change:
> TargetRange.Offset(i, intColIndex).Value = rstRecordSet!strFieldName
> To:
> TargetRange.Offset(i, intColIndex).Value = rstRecordSet!fldName
> ,where fldName is the actual field name, the query works but this means I
> will have to hard code all the field names.
>
> I even tried the following in vain:
> rstRecordSet!rstRecordSet.Fields(intColIndex).Name
>
> I know I know, it was a long shot in frustration!
>
> Bottom line is that I will have to loop through the records to enable me

to
> edit the RTF field but I don't want to hardcode the field names as this

just
> does not look right and there must be a easier way of doing this.
>
>
>
> "Harald Staff" wrote:
>
> > The "an error" is trying to tell you what's wrong. What does it say ?
> >
> > You dont' specify a cursor. If it's forwardonly then you can't move back

and
> > forth.
> >
> > And your paste method is painfully slow. Looping record by record is

only
> > required if you manipulate them on the fly. This single line ought to do

the
> > whole job:
> >
> > Range("A2").CopyFromRecordset rstRecordSet
> >
> > HTH. Best wishes Harald
> >
> > "Braindeadbeachbum" <Braindeadbeachbum@discussions.microsoft.com> skrev

i
> > melding news:E65F95CA-25F4-425D-A781-5D298B20F4D2@microsoft.com...
> > > Hi Guys
> > >
> > > I need to go through each record one at a time to convert RTF to Text

from
> > > SQL. The code I currently use is the following. My problem is that I

> > cannot
> > > define the rstRecordSet!strFieldName like I'm doing it now as I

receive an
> > > error. Is there any way around hard coding each fieldname?
> > >
> > >
> > > Private Sub GetData()
> > > Dim i As Integer
> > > Dim strCellLocation As String
> > > Dim strRecord As String
> > > Dim strFieldName As String
> > >
> > >
> > > Sheets("Raw Data").Select
> > > Range("A1").Select
> > >
> > > On Error GoTo ErrorHandler
> > >
> > > Set connConnect = CreateObject("ADODB.Connection")
> > > Set rstRecordSet = CreateObject("ADODB.Recordset")
> > >
> > > ActiveSheet.Cells.Clear
> > > Set TargetRange = ActiveSheet.Cells(1, 1)
> > >
> > > With connConnect
> > > .provider = "SQLOLEDB"
> > > .connectionString = "Data Source=?????????;Integrated
> > > Security=SSPI;Initial Catalog=???????"
> > > .Open
> > > End With
> > >
> > > With rstRecordSet
> > > .Open strSQLCommAND, connConnect
> > > For intColIndex = 0 To rstRecordSet.Fields.Count - 1
> > > TargetRange.Offset(0, intColIndex).Value =
> > > rstRecordSet.Fields(intColIndex).Name
> > > Next
> > > End With
> > >
> > > i = 2
> > > rstRecordSet.movefirst
> > > Do Until rstRecordSet.EOF
> > > For intColIndex = 0 To rstRecordSet.Fields.Count - 1
> > > strFieldName = rstRecordSet.Fields(intColIndex).Name
> > > TargetRange.Offset(i, intColIndex).Value =

> > rstRecordSet!strFieldName
> > > Next
> > > i = i + 1
> > > rstRecordSet.movenext
> > > Loop
> > >
> > > rstRecordSet.Close
> > > Set rstRecordSet = Nothing
> > > connConnect.Close
> > > Set connConnect = Nothing
> > >
> > > Exit Sub
> > > ErrorHandler:
> > > If connConnect.State = 1 Then
> > > connConnect.Close
> > > Set connConnect = Nothing
> > > End If
> > > MsgBox "Error - " & Err.Description, vbCritical, Err.Source
> > >
> > > End Sub
> > >

> >
> >
> >