Error Message 2121 "Can't open form"

  • Thread starter Thread starter Grant
  • Start date Start date
G

Grant

Hi, I get the following error message after converting my
database from 2000 to 97:

2121 <Database name> can't open the form 'rptRSVPcounts'

It contains data that <Database name> doesn't recognize.
Re-create the form or, if you maintain backup copies of
your database,
retrieve a copy of your form."

The thing is, is that it is trying to open a report not a
form. And also, it works in 2000.

How might I go about fixing this?

Cheers,
Grant.
 
Since you "downgraded" the database, any chance you used a feature in your
database which is not available in Access 97?
 
Grant said:
Hi, I get the following error message after converting my
database from 2000 to 97:

2121 <Database name> can't open the form 'rptRSVPcounts'

It contains data that <Database name> doesn't recognize.
Re-create the form or, if you maintain backup copies of
your database,
retrieve a copy of your form."

The thing is, is that it is trying to open a report not a
form. And also, it works in 2000.

How might I go about fixing this?

Cheers,
Grant.

I have on occasion found that a down-converted report still contains
internal properties that aren't valid for Access 97. I don't know why.
If doing the conversion over again doesn't work, try the following
procedure and see if it works for you.

All of the following steps are to be performed in the Access 97
(converted) database.

1. Copy and paste the following subroutine into a standard module:.

'----- start of code -----
Sub subFixExportedReport(strFileIn As String, strFileOut As String)

Dim lngCount As Long
Dim intFileIn As Integer
Dim intFileOut As Integer
Dim strLine As String

intFileIn = FreeFile
Open strFileIn For Input As intFileIn
intFileOut = FreeFile
Open strFileOut For Output As intFileOut

Do Until EOF(intFileIn)
Line Input #intFileIn, strLine
If Trim(strLine) = "GUID = Begin" Then
Do Until Trim(strLine) = "End"
Line Input #intFileIn, strLine
Loop
ElseIf Left(Trim(strLine), 11) = "FELineBreak" Then
' skip this
Else
Print #intFileOut, strLine
End If
Loop

Close intFileIn, intFileOut

End Sub
'----- end of code -----

2. Rename the original report from "'rptRSVPcounts" to
"rptRSVPcounts_OLD".

3. Press Ctrl+G to open the Immediate Window. In that window, type the
following command and press Enter:

Application.SaveAsText acReport, "rptRSVPcounts_OLD",
"C:\Temp\rptRSVPcounts_OLD.txt"

Note that the above was should be entered on one line, even though the
newsreader may have broken it into two lines in this message. Also, if
you don't have a folder "C:\Temp", you may create one or use a different
folder.

4. In the Immediate Window, type the following command and press Enter:

subFixExportedReport "C:\Temp\rptRSVPcounts_OLD.txt",
"C:\Temp\rptRSVPcounts.txt"

(Again, note that the above should all be entered on one line.)


5. In the Immediate Window, type the following command and press Enter:

Application.LoadFromText acReport, "rptRSVPcounts",
"C:\Temp\rptRSVPcounts.txt"


(All on one line again.)

That's it. You should now have a report named "rptRSVPcounts", and it
may work. Let us know.
 
Back
Top