Tenho um aplicativo feito em VB 5 e empacotado pelo Setup Wizard, chamado DIMELETRONICA. Já testei em diversos micros, com Win 95 e 98, rodando sem problemas. Contudo, num dos micros, um 586 com 32 MB de RAM, HD 1,2GB que roda sob Windows 98 2ª edição, dá pau quando executo a consulta SQL abaixo (há outras consultas, com apenas um parâmetro (variável), que são executadas sem problema naquele micro):
Este é o texto que aparece quando tento acessar a consulta SQL de duas variáveis:
DIMELETRONICA causou uma falha de página inválida no módulo <desconhecido> em
0000:00000015
Registros
EAX=0000008a CS=015f EIP=00000015 EFLFS=00010202
EBX=00000400 SS=0167 ESP=007be2dc EBP=007be334
ECX=007be320 DS=0167 ESI=005a5758 FS=30e7
EDX=1a000000 ES=0167 EDI=7feb33f3 GS=0000
Bytes em C1: EIP:
Ff00 f0 7a ea 00 f0 22 ea 00 f0 00 00 00 c8 d2
Esvaziamento da pilha:
007be2e0 00000167 0f9dcd77 00be35c 007be374
007be320 0f9dd042 007be35c 007be374 007be320
005607fc 007be7c8 007be35c 005b07pc 00000010
005b07f8
A rotina de consulta é a seguinte:
Private Sub mnuClassificarPorMarcaEAparelho_Click()
On Error GoTo reparar
Dim sql As String
Dim criterio As String, var1 As String, var2 As String
Label51.Visible = False
Label53.Visible = False
Label54.Visible = False
Label55.Visible = False
var1 = InputBox("Digite a marca do aparelho:")
If var1 = "" Then Exit Sub
var2 = InputBox("Digite o tipo de aparelho:")
If var2 = "" Then Exit Sub
criterio = Chr$(39) & var1 & "*" & var2 & "*" & Chr(39)
Data1.Recordset.MoveMin
If Data1.Recordset.NoMatch Then
Exit Sub
Else
sql = "SELECT * FROM loja WHERE Marca & Tipo LIKE" & criterio & "ORDER BY Nome"
Data1.RecordSource = sql
Data1.Refresh
Data1.Recordset.MoveMin
... ... ...
Funciona corretamente em qualquer micro onde eu instale o aplicativo. Só dá pau no 586 (já testei inclusive num Pentium 100 com 32 MB RAM, rodando sob Windows 95, sem problemas).
Alguém sabe onde está o problema? Dá pra decifrar a msg que aparece quando a consulta é executada?