Toon posts:

[vb] recordcount van sql geeft foutmelding*

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb de volgende code voor een zoekfunctie, nu probeer ik erin te krijgen dat als niks aan de zoekopdracht voldoet hij een msgbox geeft. ik probeer het met recordcount maar dit lukt dus niet want dan geeft ie "application-defined or object-defined error"

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Dim sSql As String, stLen As Integer, stCaption As String
sSql = "SELECT * FROM overeenkomstgegevens WHERE"
stCaption = "Search Results. "
sSQLOriginal = sSql

If Not IsNull(Me.txtklant) Then
  ' Search By klant
   sSql = sSql & " (((overeenkomstgegevens.klantnaam) like '*" & [Forms]!
   [frmsearch]![txtklant] & "*')) AND"
   stCaption = stCaption & "klantnaam = " & Me.txtklant & " "
End If

If Right(sSql, 3) = "AND" Then
  stLen = Len(sSql)
  sSql = Left(sSql, stLen - 4)
End If

DoCmd.OpenForm "frmOvereenkomstgegevens"

Forms![frmovereenkomstgegevens].Form.RecordSource = sSql
Forms![frmovereenkomstgegevens].Form.Caption = stCaption
 ' hier gaat het fout
If Forms![frmovereenkomstgegevens].Form.RecordCount = 0 Then
  MsgBox "Nothing meets your criteria", vbInformation, "Microsoft Press"
  Me.Visible = True     
End If


hmmm ben het onderwerp vergeten zie ik, is dat nog aan te passen

[vb] recordcount van sql geeft foutmelding

[ Voor 23% gewijzigd door Verwijderd op 06-10-2003 13:09 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

• Lees P&W FAQ - De "quickstart" minutieus door
• Zelfde voor Hoe post je code? / Hoe gebruik je de code tag?
• Edit je openingspost zodat het wel die policies volgt :)
• Stel een fatsoenlijke titel voor zodat ik die kan editen
• Krijg dan wellicht antwoorden ;)

[ Voor 14% gewijzigd door curry684 op 06-10-2003 12:57 ]

Professionele website nodig?


Verwijderd

Topicstarter
[vb] recordcount van sql geeft foutmelding

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 12-08 16:04

Jaspertje

Max & Milo.. lief

Kan je niet iets met eof doen?

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
Zoek eens op "recordcount" en kom erachter dat je deze niet moet gebruiken.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Surehand
  • Registratie: Februari 2003
  • Laatst online: 18-08 15:40
Ervan uitgaande dat je RDO/ADO gebruikt voor het bevragen van de database:

Als er geen resultaten zijn, wordt er ook geen recordset aangemaakt, waardoor de genoemde fout ontstaat.

Je kunt controleren of er records zijn door af te vragen of de BOF en EOF allebei true zijn. Is dit het geval, dan zijn er geen records.

Dus: eerst controleren of deze properties true zijn en dan pas tellen hoeveel records er zijn.

[ Voor 0% gewijzigd door Surehand op 06-10-2003 13:50 . Reden: Moet sneller typen... ]


Verwijderd

Topicstarter
ik snap niet hoe je een eof aan een sql-query resultaat kunt koppelen

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 12-08 16:04

Jaspertje

Max & Milo.. lief

asp voorbeeld:

Set rs = Connectie.Execute(sSQL)
if not rs.eof then

end if

Let wel.. dit is ASP, maar dat lijkt wel 'een beetje' op VB

Verwijderd

Je krijgt error 2465 omdat recordcount geen property is van een formulier.
Het makkelijkst is nu om een recordsetclone te maken van je formulier en dan een recordcount op te vragen. Dan hoef je niet zoveel te herprogrammeren.

code:
1
2
3
dim rst as recordset
set rst = Forms![frmovereenkomstgegevens].Form.recordsetclone
if rst.recordcount = ....

Verwijderd

Topicstarter
dan zou dit toch moeten werken want dit lijkt mij idd ook de beste oplossing met een recordsetclone te werken alleen krijg ik dan de error "type mismatch"

code:
1
2
3
4
5
6
7
8
9
10
11
12
dim rst as recordset

DoCmd.OpenForm "frmOvereenkomstgegevens"

Forms![frmovereenkomstgegevens].Form.RecordSource = sSql
Forms![frmovereenkomstgegevens].Form.Caption = stCaption

set rst = forms![frmovereenkomstgegevens].form.recordsetclone
if rst.recordcount = 0 then
  MsgBox "No Authors meet your criteria", vbInformation, "Microsoft Press"
  rst.Close
end if

Verwijderd

In welke regel krijg je die error ?

probeer anders even:
set rst = me.recordsetclone

Dat is ook nog korter :)

[ Voor 54% gewijzigd door Verwijderd op 06-10-2003 16:18 ]


Verwijderd

Topicstarter
met set rst = me.recordsetclone krijg ik dit :
"you entered an expression that has an invalid reference to the recordsetclone property"

tis eigenlijk in vba gemaakt maar dat hoort niet uit te maken toch

Verwijderd

Topicstarter
kan het zo zijn dat de recordsetclone niet goed gaat omdat de recordsource een sql-query is die in de code zelf wordt gemaakt
Pagina: 1