Error de sintaxis en la cláusula FROM
dormdaz
Mensajes publicados
361
Estado
Miembro
-
pijaku Mensajes publicados 13513 Fecha de registro Estado Moderador Última intervención -
pijaku Mensajes publicados 13513 Fecha de registro Estado Moderador Última intervención -
Hola,
he hecho un pequeño programa en VB6 con una base Access; después de la ejecución me muestra un mensaje de error así: [Microsoft][Pilote ODBC Access]Erreur de Syntaxe dans la Clause FROM. y La méthode 'Refresh' de l'objet 'Adodc' a echoué.
y el cuerpo del programa es el siguiente:
vraiment j'arrive pas a résoudre le problem , je vous remercie d'avance et bonne journée
Configuration: Windows XP / Firefox 33.0
he hecho un pequeño programa en VB6 con una base Access; después de la ejecución me muestra un mensaje de error así: [Microsoft][Pilote ODBC Access]Erreur de Syntaxe dans la Clause FROM. y La méthode 'Refresh' de l'objet 'Adodc' a echoué.
y el cuerpo del programa es el siguiente:
Private Sub cmd_chercher_Click() If Me.Tcode.Text = "" Then t = MsgBox("il faut saisir le code d'abord ", vbExclamation + vbOKOnly, "information") Exit Sub End If Adodc_maj_clients.RecordSource = " SELECT maj_clients.* From maj_clients WHERE ( maj_clients.code = '" & Me.Tcode & "') " Adodc_maj_clients.Refresh If Me.Adodc_maj_clients.Recordset.RecordCount <> 0 Then Me.Text11.Text = Me.Adodc_maj_clients.Recordset!nom Me.Text9.Text = Me.Adodc_maj_clients.Recordset!Date_N Me.Text6.Text = Me.Adodc_maj_clients.Recordset!Etat Me.Text5.Text = Me.Adodc_maj_clients.Recordset!Date_RDV '' Me.Text4.Text = Me.Adodc_maj_client.Recordset!Date_Paiement Me.Text3.Text = Me.Adodc_maj_clients.Recordset!N_Recu Me.Text2.Text = Me.Adodc_maj_clients.Recordset!N_reg Me.Text12.Text = Me.Adodc_maj_clients.Recordset!Agence Me.Text3.Text = Me.Adodc_maj_clients.Recordset!Date_Paiement Else p = MsgBox(" Recherche non aboutie ", vbOKOnly + vbInformation, "information") Exit Sub End If End vraiment j'arrive pas a résoudre le problem , je vous remercie d'avance et bonne journée
Configuration: Windows XP / Firefox 33.0
Enlaces relacionados:
- Sintaxis de VBA Sheets.Range con variable de rango
- [VBA] : Control de la presencia de un valor en un textbox
- Error '9' el índice no pertenece a la selección
- Error, el método PasteSpecial de la Clase Range ha fallado.
- Condiciones para duplicados en la misma celda
- Reemplazar & por 1 al ingresar en el cuadro de texto.
4 respuestas
-
Hola,
intenta esto
Tcode es una cadena de caracteres
Adodc_maj_clients.RecordSource = "SELECT maj_clients.* From maj_clients WHERE maj_clients.code = " & Me.Tcode
-
Difícil de probar.
Si empiezas por
"" SELECT maj_clients.* From maj_clients"
¿Se produce el error?
Si sí, sabemos que el nombre de la tabla, o la conexión a la BD, está causando el problema.
Si no, bien, sabemos que es: WHERE ( maj_clients.code = '" & Me.Tcode & "')
el que está causando el problema.
Simplifica el código hasta que funcione, y añade las complejidades una por una para identificar qué trozo provoca el problema.-
Gracias de todos modos, el problema no está resuelto. mira, cuando ejecuto mi programa, exactamente dónde se detiene, como sigue:
Adodc_maj_clients.RecordSource = " SELECT maj_clients.* From maj_clients WHERE ( maj_clients.code = '" & Me.Tcode & "') "
Adodc_maj_clients.Refresh <----------- ( ahí aparece el problema )
If Me.Adodc_maj_clients.Recordset.RecordCount <> 0 Then
.
.
.
. No logro resolver el problema, te lo agradezco infinitamente
Dorm. -
-
-
-
-
-
Hola,
la sintaxis de la consulta es buena, pero con vuestro proyecto VB6 y la base disponible en https://www.cjoint.com/ sería más fácil-
Gracias, pero el problema lo localicé primero cuando uso Adodc solo con editores de texto para recuperar los datos. Y cuando lo ejecuto todo está bien, pero cuando uso el editor de texto para recuperar el código para hacer la búsqueda en la tabla, entonces me veo obligado a hacer estas instrucciones:
Adodc_maj_clients.RecordSource = " SELECT maj_clients.* From maj_clients
WHERE ( maj_clients.code = '" & Me.Tcode & "') "
Adodc_maj_clients.Refresh <--- ( se muestra el error aquí )
y cuando ejecuto el programa me aparece el mensaje de error :
[Microsoft][Pilote ODBC Access]Erreur de Syntaxe dans la Clause FROM. et La méthode 'Refresh' de l'objet 'Adodc' a echoué.
por favor, ¿existe otra método para hacer recuperar los datos y mostrarlos? Muchas gracias.
Dorm.
-
-
Hola,
Sin saber mucho, me permito aportar mi granito de arena.
Disculpa las molestias si no es eso, considera que solo he pasado por aquí...
Visto en Microsoft.com:
Si el CommandType del control ADO Data está definido en adCmdTable, la instrucción "SELECT * From" se añade automáticamente al valor RecordSource. El hecho de definir RecordSource a una instrucción SQL de tipo SELECT, como Select * From Nom_table, da como resultado una instrucción SQL incorrecta del tipo Select * From Select * From Nom_table.
A probar, por lo tanto:
Adodc_maj_clients.CommandType = adCmdText 'o mejor: adCmdUnknown
Adodc_maj_clients.RecordSource = " SELECT maj_clients.* From maj_clients WHERE ( maj_clients.code = '" & Me.Tcode & "') "
Adodc_maj_clients.Refresh
Fuentes: Esta muy mala traducción...
Cordialmente,
Franck-
-
Como se dijo anteriormente, no entiendo nada...
Personalmente pensaba que siempre había que declarar la «conexión». Un poco como este ejemplo:
Private Sub DataGrid1_Error(ByVal DataError As Integer, Response As Integer) Dim MaComm As ADODB.Command, Recup If DataError = 6153 Then Set MaComm = New ADODB.Command 'CONNEXION !!! With MaComm .ActiveConnection = Adodc1.Recordset.ActiveConnection .CommandText = "INSERT INTO Publishers (Name,[Company Name]) VALUES('" & Adodc1.Recordset!Name & "','" _ & Adodc1.Recordset![Company Name] & "')" .Execute .CommandText = "SELECT @@IDENTITY" Recup = .Execute .CommandText = "INSERT INTO Titles (Title,ISBN,[Year Published],PubId) VALUES('" & Adodc1.Recordset!Title & _ "','" & Adodc1.Recordset!ISBN & "','" & Adodc1.Recordset![Year Published] & "','" & Recup(0).Value & "')" .Execute End With Set DataGrid1.DataSource = Nothing Adodc1.Recordset.CancelUpdate Adodc1.Recordset.Requery Set DataGrid1.DataSource = Adodc1 Response = 0 End If End Sub
Mais, ce lien peut s'avérer utile...
-