Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

erreur d'exécution '3001'

3 réponses
Avatar
macgiver
Bonjour a tous j'obtiens cette erreur chaque fois que j'ouvre mon formulaire
(un switchboard), pouvez vous me dire comment résoudre ce bug car mon
formulaire ne s'ouvre plus.

Il plante à la ligne suivante : rs.Open stSql, con, 1 ' 1 = adOpenKeyset

Private Sub FillOptions()
' Fill in the options for this switchboard page.

' The number of buttons on the form.
Const conNumButtons = 13

Dim con As Object
Dim rs As Object
Dim stSql As String
Dim intOption As Integer

' Set the focus to the first button on the form,
' and then hide all of the buttons on the form
' but the first. You can't hide the field with the focus.
Me![Option1].SetFocus
For intOption = 2 To conNumButtons
Me("Option" & intOption).Visible = False
Me("OptionLabel" & intOption).Visible = False
Next intOption

' Open the table of Switchboard Items, and find
' the first item for this Switchboard Page.
Set con = Application.CurrentProject.Connection
stSql = "SELECT * FROM [Switchboard Items]"
stSql = stSql & " WHERE [ItemNumber] > 0 AND [SwitchboardID]=" &
Me![SwitchboardID]
stSql = stSql & " ORDER BY [ItemNumber];"
Set rs = CreateObject("ADODB.Recordset")
rs.Open stSql, con, 1 ' 1 = adOpenKeyset

' If there are no options for this Switchboard Page,
' display a message. Otherwise, fill the page with the items.
If (rs.EOF) Then
Me![OptionLabel1].Caption = "There are no items for this switchboard
page"
Else
While (Not (rs.EOF))
Me("Option" & rs![ItemNumber]).Visible = True
Me("OptionLabel" & rs![ItemNumber]).Visible = True
Me("OptionLabel" & rs![ItemNumber]).Caption = rs![ItemText]
rs.MoveNext
Wend
End If

' Close the recordset and the database.
rs.Close
Set rs = Nothing
Set con = Nothing

End Sub

3 réponses

Avatar
Raymond [mvp]
Bonjour.

L'erreur 3001 est assez claire en ADO et devrait provenir d'une faute de
frappe dans les noms de table ou champs. As-tu vérifié, en mettant un point
d'arret sur ces lignes, que tu avais les bonnes valeurs dans les variables,
qu'il ne manquait pas les ' pour les valeurs alpha ou que stSql était bien
construit ? place un debug.print stSql avant le set rs... pour vérifier.
L'erreur donne les possibilités suivantes:

Erreur 3001 adErrInvalidArgument
Les arguments ne sont pas du type requis, ils
ne figurent pas dans des plages de valeurs acceptables ou sont en conflit.
Cette erreur est souvent causée par une erreur typographique dans une
instruction SQL SELECT. Un nom de champ ou de table mal orthographié, par
exemple, peut générer cette erreur. Elle peut également se produire
lorsqu'une table ou un champ appelé dans une instruction SELECT n'existe pas
dans le magasin de données.

--
@+
Raymond Access MVP http://www.OfficeSystemAccess.com/
http://officesystem.access.over-blog.com/
http://officesystem.access.free.fr/wiki/
Pour débuter sur le forum: http://www.mpfa.info/

Venez découvrir Open XML, le nouveau format de fichier de la suite Office !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db


"macgiver" a écrit dans le message de
news:
| Bonjour a tous j'obtiens cette erreur chaque fois que j'ouvre mon
formulaire
| (un switchboard), pouvez vous me dire comment résoudre ce bug car mon
| formulaire ne s'ouvre plus.
|
| Il plante à la ligne suivante : rs.Open stSql, con, 1 ' 1 adOpenKeyset
|
| Private Sub FillOptions()
| ' Fill in the options for this switchboard page.
|
| ' The number of buttons on the form.
| Const conNumButtons = 13
|
| Dim con As Object
| Dim rs As Object
| Dim stSql As String
| Dim intOption As Integer
|
| ' Set the focus to the first button on the form,
| ' and then hide all of the buttons on the form
| ' but the first. You can't hide the field with the focus.
| Me![Option1].SetFocus
| For intOption = 2 To conNumButtons
| Me("Option" & intOption).Visible = False
| Me("OptionLabel" & intOption).Visible = False
| Next intOption
|
| ' Open the table of Switchboard Items, and find
| ' the first item for this Switchboard Page.
| Set con = Application.CurrentProject.Connection
| stSql = "SELECT * FROM [Switchboard Items]"
| stSql = stSql & " WHERE [ItemNumber] > 0 AND [SwitchboardID]=" &
| Me![SwitchboardID]
| stSql = stSql & " ORDER BY [ItemNumber];"
| Set rs = CreateObject("ADODB.Recordset")
| rs.Open stSql, con, 1 ' 1 = adOpenKeyset
|
| ' If there are no options for this Switchboard Page,
| ' display a message. Otherwise, fill the page with the items.
| If (rs.EOF) Then
| Me![OptionLabel1].Caption = "There are no items for this
switchboard
| page"
| Else
| While (Not (rs.EOF))
| Me("Option" & rs![ItemNumber]).Visible = True
| Me("OptionLabel" & rs![ItemNumber]).Visible = True
| Me("OptionLabel" & rs![ItemNumber]).Caption = rs![ItemText]
| rs.MoveNext
| Wend
| End If
|
| ' Close the recordset and the database.
| rs.Close
| Set rs = Nothing
| Set con = Nothing
|
| End Sub
Avatar
macgiver
J'ai bien vérifier et tout me semble ok pour ce qui est du nom de la table et
des champs dans ma requete. J'ai fait une test avec un autre poste et tout
fonctionne. Pourtant il ont les meme reférence vb d'activé, et le meme
service pack, penses-tu que ça pourrait etre un erreur de microsoftjet?

merci



Bonjour.

L'erreur 3001 est assez claire en ADO et devrait provenir d'une faute de
frappe dans les noms de table ou champs. As-tu vérifié, en mettant un point
d'arret sur ces lignes, que tu avais les bonnes valeurs dans les variables,
qu'il ne manquait pas les ' pour les valeurs alpha ou que stSql était bien
construit ? place un debug.print stSql avant le set rs... pour vérifier.
L'erreur donne les possibilités suivantes:

Erreur 3001 adErrInvalidArgument
Les arguments ne sont pas du type requis, ils
ne figurent pas dans des plages de valeurs acceptables ou sont en conflit.
Cette erreur est souvent causée par une erreur typographique dans une
instruction SQL SELECT. Un nom de champ ou de table mal orthographié, par
exemple, peut générer cette erreur. Elle peut également se produire
lorsqu'une table ou un champ appelé dans une instruction SELECT n'existe pas
dans le magasin de données.

--
@+
Raymond Access MVP http://www.OfficeSystemAccess.com/
http://officesystem.access.over-blog.com/
http://officesystem.access.free.fr/wiki/
Pour débuter sur le forum: http://www.mpfa.info/

Venez découvrir Open XML, le nouveau format de fichier de la suite Office !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db


"macgiver" a écrit dans le message de
news:
| Bonjour a tous j'obtiens cette erreur chaque fois que j'ouvre mon
formulaire
| (un switchboard), pouvez vous me dire comment résoudre ce bug car mon
| formulaire ne s'ouvre plus.
|
| Il plante à la ligne suivante : rs.Open stSql, con, 1 ' 1 > adOpenKeyset
|
| Private Sub FillOptions()
| ' Fill in the options for this switchboard page.
|
| ' The number of buttons on the form.
| Const conNumButtons = 13
|
| Dim con As Object
| Dim rs As Object
| Dim stSql As String
| Dim intOption As Integer
|
| ' Set the focus to the first button on the form,
| ' and then hide all of the buttons on the form
| ' but the first. You can't hide the field with the focus.
| Me![Option1].SetFocus
| For intOption = 2 To conNumButtons
| Me("Option" & intOption).Visible = False
| Me("OptionLabel" & intOption).Visible = False
| Next intOption
|
| ' Open the table of Switchboard Items, and find
| ' the first item for this Switchboard Page.
| Set con = Application.CurrentProject.Connection
| stSql = "SELECT * FROM [Switchboard Items]"
| stSql = stSql & " WHERE [ItemNumber] > 0 AND [SwitchboardID]=" &
| Me![SwitchboardID]
| stSql = stSql & " ORDER BY [ItemNumber];"
| Set rs = CreateObject("ADODB.Recordset")
| rs.Open stSql, con, 1 ' 1 = adOpenKeyset
|
| ' If there are no options for this Switchboard Page,
| ' display a message. Otherwise, fill the page with the items.
| If (rs.EOF) Then
| Me![OptionLabel1].Caption = "There are no items for this
switchboard
| page"
| Else
| While (Not (rs.EOF))
| Me("Option" & rs![ItemNumber]).Visible = True
| Me("OptionLabel" & rs![ItemNumber]).Visible = True
| Me("OptionLabel" & rs![ItemNumber]).Caption = rs![ItemText]
| rs.MoveNext
| Wend
| End If
|
| ' Close the recordset and the database.
| rs.Close
| Set rs = Nothing
| Set con = Nothing
|
| End Sub







Avatar
Raymond [mvp]
Si tu as les mêmes références et que ça fonctionne ailleurs, il y a
forcément une différence quelque part.
références VB , même niveau ?
même version Office ? même windows ? même SP ?
si même version tu devrais avoir le même MDAC ?
regarde la fiche
http://msdn2.microsoft.com/en-us/data/aa937729.aspx
et éventuellement recharge le MDAC 2.8

--
@+
Raymond Access MVP http://www.OfficeSystemAccess.com/
http://officesystem.access.over-blog.com/
http://officesystem.access.free.fr/wiki/
Pour débuter sur le forum: http://www.mpfa.info/

Venez découvrir Open XML, le nouveau format de fichier de la suite Office !
http://www.comscamp.com/Tracker/Redirect.ashx?linkidÿ71c7f3-78e8-4371-abaf-b73c259e58db


"macgiver" a écrit dans le message de
news:
| J'ai bien vérifier et tout me semble ok pour ce qui est du nom de la table
et
| des champs dans ma requete. J'ai fait une test avec un autre poste et tout
| fonctionne. Pourtant il ont les meme reférence vb d'activé, et le meme
| service pack, penses-tu que ça pourrait etre un erreur de microsoftjet?
|
| merci