Erreur d'exécution 3464: Type de Données incompatible dans l'expression des critères

J'ai un formulaire dans Access 2010 avec Deux zones de texte(AIPIDTxt d'entrer les critères de recherche et AIPResultTxt à l'affichage des résultats) et un Bouton(bouton Rechercher). J'ai aussi une Table Table1 dans l'Accès. Quand je clique sur le Bouton de Recherche, j'ai besoin d'exécuter une requête dont les critères est dans AIPIDTxt zone de texte dans le formulaire, stocker le résultat dans un jeu d'enregistrements et afficher les résultats dans la zone de texte AIPResultTxt. Donc j'ai tapé le Code VBA suivant dans le gestionnaire d'Événements de Bouton.

Private Sub SearchB_Click()

Dim localConnection As ADODB.Connection
Dim query As String
Dim aipid_rs As ADODB.Recordset
Dim db As Database

Set db = CurrentDb
Set localConnection = CurrentProject.AccessConnection
MsgBox "Local Connection successful"
query = "SELECT [AIP Name] FROM [Table1] WHERE [AIP ID]= 
" & [Forms]![AIPIDSearchF]![AIPIDTxt] & ""
Set aipid_rs = db.OpenRecordset(query)
Me.AIPResultTxt.Text = aipid_rs![AIP Name]
End Sub

Mais quand je clique sur le bouton je reçois Local, Connexion Réussie Boîte de Message et puis une Erreur d'Exécution 3464 dans la ligne:

Set aipid_rs= db.OpenRecordset(query)

J'ai cherché pour les mêmes erreurs et corrections apportées. Mais l'erreur ne cesse de revenir. Est-il quelque chose de mal avec ma requête? Ne pouvait pas trouver l'erreur. La table est une table locale. Donc, je peux donner directement de l' [Table1] et les noms de champ dans la requête en vba. Essayé d'ajouter des séparateurs parce que les champs sont des champs de texte. Mais cela ne fonctionne pas ainsi. Je ne pourrais pas faire la requête suivante ainsi:

query = "SELECT [AIP Name] FROM [Table1] WHERE [AIP ID]= " & [Forms]![AIPIDSearchF]!
[AIPIDTxt].Text & ""

Cela m'a donné une erreur indiquant que le texte ne peut pas être référencé à partir de contrôles qui ont perdu le focus. Mes critères est le texte dans la zone de texte. La zone de texte perd le focus lorsque je clique sur le bouton. Mais quand j'ai googlé pour l'erreur, des solutions sont à retirer ".Texte". Donc, j'ai fini avec la requête ci-dessus. Ne sais pas quel est le problème avec la ligne:

Set aipid_rs= db.OpenRecordset(query)
  • Quel est le type de données de la colonne "AIP_ID"?
  • AIP ID de type de données Texte
  • Vous avez besoin de mettre des guillemets autour de votre valeur de la requête.
  • J'ai donné ceci: query = "SELECT [AIP Nom] DE [ACH] OÙ [AIP ID]= '" + [Formulaires]![AIPIDSearchF]![AIPIDTxt] + "'" Ensemble aip_rs = db.OpenRecordset(requête) Moi.AIPResultTxt.SetFocus Moi.AIPResultTxt = aipid_rs![AIP] Nom de L'erreur d'exécution 3464 est allé. Mais j'obtiens l'Erreur d'Exécution 91: Objet ou Variable de Bloc with non définie
  • Peut-être il n'y a pas des résultats?
  • Est votre formulaire d'ouverture/actif lors de l'exécution de la requête?

InformationsquelleAutor Prithvi Raj | 2014-02-26