PC Review


Reply
Thread Tools Rate Thread

Can't get rid of EOF message

 
 
=?Utf-8?B?S0pHaW5OQw==?=
Guest
Posts: n/a
 
      8th Feb 2005
Hi,

I've got some ugly code below that works, but at the end I get the "Either
BOF or EOF is true...." message. I don't want that message to appear, plus I
can't see why it keeps showing up. I've tried Do..Loop, If..Then..Else,
While..Wend.

Can anyone tell me what's wrong or how to make it better?

Thanks

KJGinNC

Option Compare Database

Private Sub GetRecords_Click()
On Error GoTo Err_GetRecords_Click

Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim strSQL As String, strSQL2 As String
Dim Sname As String, Alevel As String
Dim Sweek As Long
Dim flag As Integer

Set cnn = CurrentProject.Connection
Set rst = New ADODB.Recordset


rst.Open "Specialist", cnn, adOpenDynamic, adLockPessimistic
rst.MoveFirst
Sname = (rst![MpApprvdBy])

Sweek = [Forms]![Test3]![WeekNum]
Alevel = [Forms]![Test3]![AuditLevel]

DoCmd.SetWarnings False

DoCmd.RunSQL "SELECT TOP 10 PERCENT RawData.ID, RawData.MpApprvdBy,
RawData.Week," _
& "RawData.ToAudit INTO Xtmp FROM RawData WHERE
(((RawData.MpApprvdBy)=" _
& Chr(34) & Sname & Chr(34) & ") AND ((RawData.Week)=" _
& Sweek & ") AND ((RawData.ToAudit) Is Null)) ORDER BY Rnd([ID])"
DoCmd.RunSQL "UPDATE xTmp INNER JOIN RawData ON xTmp.ID = RawData.ID SET
RawData.ToAudit =" _
& Chr(34) & Alevel & Chr(34)

Do While rst.EOF = False
rst.MoveNext
Sname = (rst![MpApprvdBy])

DoCmd.RunSQL "SELECT TOP 10 PERCENT RawData.ID, RawData.MpApprvdBy,
RawData.Week," _
& "RawData.ToAudit INTO Xtmp FROM RawData WHERE
(((RawData.MpApprvdBy)=" _
& Chr(34) & Sname & Chr(34) & ") AND ((RawData.Week)=" _
& Sweek & ") AND ((RawData.ToAudit) Is Null)) ORDER BY Rnd([ID])"
DoCmd.RunSQL "UPDATE xTmp INNER JOIN RawData ON xTmp.ID =
RawData.ID SET RawData.ToAudit =" _
& Chr(34) & Alevel & Chr(34)
Loop

DoCmd.SetWarnings True
Exit_GetRecords_Click:

Exit Sub

Err_GetRecords_Click:
MsgBox Err.Description
Resume Exit_GetRecords_Click
End Sub
 
Reply With Quote
 
 
 
 
Dirk Goldgar
Guest
Posts: n/a
 
      8th Feb 2005
"KJGinNC" <(E-Mail Removed)> wrote in message
news:A5B6980E-3432-435B-9DB7-(E-Mail Removed)
> Hi,
>
> I've got some ugly code below that works, but at the end I get the
> "Either BOF or EOF is true...." message. I don't want that message
> to appear, plus I can't see why it keeps showing up. I've tried
> Do..Loop, If..Then..Else, While..Wend.
>
> Can anyone tell me what's wrong or how to make it better?
>
> Thanks
>
> KJGinNC
>
> Option Compare Database
>
> Private Sub GetRecords_Click()
> On Error GoTo Err_GetRecords_Click
>
> Dim cnn As ADODB.Connection
> Dim rst As ADODB.Recordset
> Dim strSQL As String, strSQL2 As String
> Dim Sname As String, Alevel As String
> Dim Sweek As Long
> Dim flag As Integer
>
> Set cnn = CurrentProject.Connection
> Set rst = New ADODB.Recordset
>
>
> rst.Open "Specialist", cnn, adOpenDynamic, adLockPessimistic
> rst.MoveFirst
> Sname = (rst![MpApprvdBy])
>
> Sweek = [Forms]![Test3]![WeekNum]
> Alevel = [Forms]![Test3]![AuditLevel]
>
> DoCmd.SetWarnings False
>
> DoCmd.RunSQL "SELECT TOP 10 PERCENT RawData.ID, RawData.MpApprvdBy,
> RawData.Week," _
> & "RawData.ToAudit INTO Xtmp FROM RawData WHERE
> (((RawData.MpApprvdBy)=" _
> & Chr(34) & Sname & Chr(34) & ") AND ((RawData.Week)=" _
> & Sweek & ") AND ((RawData.ToAudit) Is Null)) ORDER BY
> Rnd([ID])" DoCmd.RunSQL "UPDATE xTmp INNER JOIN RawData ON xTmp.ID =
> RawData.ID SET RawData.ToAudit =" _
> & Chr(34) & Alevel & Chr(34)
>
> Do While rst.EOF = False
> rst.MoveNext
> Sname = (rst![MpApprvdBy])
>
> DoCmd.RunSQL "SELECT TOP 10 PERCENT RawData.ID,
> RawData.MpApprvdBy, RawData.Week," _
> & "RawData.ToAudit INTO Xtmp FROM RawData WHERE
> (((RawData.MpApprvdBy)=" _
> & Chr(34) & Sname & Chr(34) & ") AND ((RawData.Week)=" _
> & Sweek & ") AND ((RawData.ToAudit) Is Null)) ORDER BY
> Rnd([ID])" DoCmd.RunSQL "UPDATE xTmp INNER JOIN RawData ON
> xTmp.ID =
> RawData.ID SET RawData.ToAudit =" _
> & Chr(34) & Alevel & Chr(34)
> Loop
>
> DoCmd.SetWarnings True
> Exit_GetRecords_Click:
>
> Exit Sub
>
> Err_GetRecords_Click:
> MsgBox Err.Description
> Resume Exit_GetRecords_Click
> End Sub


rst.EOF becomes true when you have moved *past* the last record, not
when you are *on* the last record. In your loop, you call rst.MoveNext
and then refer to rst!MpApprvdBy, without checking first to see if
MoveNext took the recordset past the last record. Your code should
probably be structured like this:

'----- start of revised code -----
Private Sub GetRecords_Click()

On Error GoTo Err_GetRecords_Click

Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim strSQL As String, strSQL2 As String
Dim Sname As String, Alevel As String
Dim Sweek As Long
Dim flag As Integer

Sweek = [Forms]![Test3]![WeekNum]
Alevel = [Forms]![Test3]![AuditLevel]

Set cnn = CurrentProject.Connection
Set rst = New ADODB.Recordset

rst.Open "Specialist", cnn, adOpenDynamic, adLockPessimistic

DoCmd.SetWarnings False

Do Until rst.EOF

Sname = (rst![MpApprvdBy])

DoCmd.RunSQL _
"SELECT TOP 10 PERCENT " & _
"RawData.ID, RawData.MpApprvdBy, " & _
"RawData.Week, RawData.ToAudit " & _
"INTO Xtmp FROM RawData " & _
"WHERE (((RawData.MpApprvdBy)=" & _
Chr(34) & Sname & Chr(34) & _
") AND ((RawData.Week)=" & Sweek & _
") AND ((RawData.ToAudit) Is Null)) " & _
"ORDER BY Rnd([ID])"

DoCmd.RunSQL _
"UPDATE xTmp INNER JOIN RawData " & _
"ON xTmp.ID = RawData.ID " & _
"SET RawData.ToAudit =" & Chr(34) & Alevel & Chr(34)

rst.MoveNext

Loop

Exit_GetRecords_Click:
DoCmd.SetWarnings True

Exit Sub

Err_GetRecords_Click:
MsgBox Err.Description
Resume Exit_GetRecords_Click
End Sub
'----- end of revised code -----

--
Dirk Goldgar, MS Access MVP
www.datagnostics.com

(please reply to the newsgroup)


 
Reply With Quote
 
=?Utf-8?B?S0pHaW5OQw==?=
Guest
Posts: n/a
 
      8th Feb 2005
Thanks so much! I knew it was something simple like that! It works great now.


"Dirk Goldgar" wrote:

> "KJGinNC" <(E-Mail Removed)> wrote in message
> news:A5B6980E-3432-435B-9DB7-(E-Mail Removed)
> > Hi,
> >
> > I've got some ugly code below that works, but at the end I get the
> > "Either BOF or EOF is true...." message. I don't want that message
> > to appear, plus I can't see why it keeps showing up. I've tried
> > Do..Loop, If..Then..Else, While..Wend.
> >
> > Can anyone tell me what's wrong or how to make it better?
> >
> > Thanks
> >
> > KJGinNC
> >
> > Option Compare Database
> >
> > Private Sub GetRecords_Click()
> > On Error GoTo Err_GetRecords_Click
> >
> > Dim cnn As ADODB.Connection
> > Dim rst As ADODB.Recordset
> > Dim strSQL As String, strSQL2 As String
> > Dim Sname As String, Alevel As String
> > Dim Sweek As Long
> > Dim flag As Integer
> >
> > Set cnn = CurrentProject.Connection
> > Set rst = New ADODB.Recordset
> >
> >
> > rst.Open "Specialist", cnn, adOpenDynamic, adLockPessimistic
> > rst.MoveFirst
> > Sname = (rst![MpApprvdBy])
> >
> > Sweek = [Forms]![Test3]![WeekNum]
> > Alevel = [Forms]![Test3]![AuditLevel]
> >
> > DoCmd.SetWarnings False
> >
> > DoCmd.RunSQL "SELECT TOP 10 PERCENT RawData.ID, RawData.MpApprvdBy,
> > RawData.Week," _
> > & "RawData.ToAudit INTO Xtmp FROM RawData WHERE
> > (((RawData.MpApprvdBy)=" _
> > & Chr(34) & Sname & Chr(34) & ") AND ((RawData.Week)=" _
> > & Sweek & ") AND ((RawData.ToAudit) Is Null)) ORDER BY
> > Rnd([ID])" DoCmd.RunSQL "UPDATE xTmp INNER JOIN RawData ON xTmp.ID =
> > RawData.ID SET RawData.ToAudit =" _
> > & Chr(34) & Alevel & Chr(34)
> >
> > Do While rst.EOF = False
> > rst.MoveNext
> > Sname = (rst![MpApprvdBy])
> >
> > DoCmd.RunSQL "SELECT TOP 10 PERCENT RawData.ID,
> > RawData.MpApprvdBy, RawData.Week," _
> > & "RawData.ToAudit INTO Xtmp FROM RawData WHERE
> > (((RawData.MpApprvdBy)=" _
> > & Chr(34) & Sname & Chr(34) & ") AND ((RawData.Week)=" _
> > & Sweek & ") AND ((RawData.ToAudit) Is Null)) ORDER BY
> > Rnd([ID])" DoCmd.RunSQL "UPDATE xTmp INNER JOIN RawData ON
> > xTmp.ID =
> > RawData.ID SET RawData.ToAudit =" _
> > & Chr(34) & Alevel & Chr(34)
> > Loop
> >
> > DoCmd.SetWarnings True
> > Exit_GetRecords_Click:
> >
> > Exit Sub
> >
> > Err_GetRecords_Click:
> > MsgBox Err.Description
> > Resume Exit_GetRecords_Click
> > End Sub

>
> rst.EOF becomes true when you have moved *past* the last record, not
> when you are *on* the last record. In your loop, you call rst.MoveNext
> and then refer to rst!MpApprvdBy, without checking first to see if
> MoveNext took the recordset past the last record. Your code should
> probably be structured like this:
>
> '----- start of revised code -----
> Private Sub GetRecords_Click()
>
> On Error GoTo Err_GetRecords_Click
>
> Dim cnn As ADODB.Connection
> Dim rst As ADODB.Recordset
> Dim strSQL As String, strSQL2 As String
> Dim Sname As String, Alevel As String
> Dim Sweek As Long
> Dim flag As Integer
>
> Sweek = [Forms]![Test3]![WeekNum]
> Alevel = [Forms]![Test3]![AuditLevel]
>
> Set cnn = CurrentProject.Connection
> Set rst = New ADODB.Recordset
>
> rst.Open "Specialist", cnn, adOpenDynamic, adLockPessimistic
>
> DoCmd.SetWarnings False
>
> Do Until rst.EOF
>
> Sname = (rst![MpApprvdBy])
>
> DoCmd.RunSQL _
> "SELECT TOP 10 PERCENT " & _
> "RawData.ID, RawData.MpApprvdBy, " & _
> "RawData.Week, RawData.ToAudit " & _
> "INTO Xtmp FROM RawData " & _
> "WHERE (((RawData.MpApprvdBy)=" & _
> Chr(34) & Sname & Chr(34) & _
> ") AND ((RawData.Week)=" & Sweek & _
> ") AND ((RawData.ToAudit) Is Null)) " & _
> "ORDER BY Rnd([ID])"
>
> DoCmd.RunSQL _
> "UPDATE xTmp INNER JOIN RawData " & _
> "ON xTmp.ID = RawData.ID " & _
> "SET RawData.ToAudit =" & Chr(34) & Alevel & Chr(34)
>
> rst.MoveNext
>
> Loop
>
> Exit_GetRecords_Click:
> DoCmd.SetWarnings True
>
> Exit Sub
>
> Err_GetRecords_Click:
> MsgBox Err.Description
> Resume Exit_GetRecords_Click
> End Sub
> '----- end of revised code -----
>
> --
> Dirk Goldgar, MS Access MVP
> www.datagnostics.com
>
> (please reply to the newsgroup)
>
>
>

 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Message headers, attachments, and the message body may be lost in Outlook 2003 when you reply to an e-mail message that contains a References header that exceeds 1,000 bytes gbkhor Microsoft Outlook 0 4th Mar 2009 10:26 AM
Recv'g Message: Unknown message recipient(s); the message was not =?Utf-8?B?U2VuZCBPYmplY3QgQ29tbWFuZCAtIFR3byBhdHRh Microsoft Access Macros 0 29th Sep 2006 03:08 PM
"The system cannot find message text for message number 0x%1 in the message TimothyTrulis@gmail.com Windows XP Setup 0 9th Feb 2006 04:59 PM
Have message opened. Move message to a folder. Message Closes! =?Utf-8?B?c2h3aWc=?= Microsoft Outlook Discussion 1 16th Jan 2005 01:43 AM
Office XP- OUTLOOK: Format toolbar is inactive. Cannot select font, color, underline, italic, etc. This occurs in new message, forward message amd reply message. Tools, Options, Customize, selections do not change the status in the messages. Hel =?Utf-8?B?V01E?= Microsoft Outlook 3 21st Feb 2004 05:56 AM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 02:10 PM.