Hola anna...
mira...
Lo que deberías hacer, es hacer una copia del archivo .bat poniendole como nombre (por ejemlpo) "PlantillaSQL.bat". Una vez hecho esto, editas este archivo con el bloc de notas, y reemplazar todos aquellos datos que pudieran variar dentro del SQL por un nombre descriptivocolocado (por ejemplo) entre llaves. Luego eliminas el archivo .bat original.
Una vez hecho esto, desde VB, cuando el usuario te ha ingresado los valores, abres el archivo PlantillaSQL.bat, buscas las cadenas encerradas entre llaves, y las reemplazas por las variables que te dio el usuario. Grabas esto en un archivo con el nombre original.bat, y éste es el que ejecutas.
Te voy a dar un ejemplo:
El archivo que tienes ahora se llama SQL.bat y contiene:
"SELECT * FROM Pedidos WHERE Codigo = 13456"
Deberías crear un archivo que se llame PlantillaSQL.bat y ponerle:
"SELECT * FROM Pedidos WHERE Codigo = {CODIGO_PEDIDO}"
Eliminas el archivo sql.bat
desde visual haces (suponiendo que el archivo planilla está en el mismo directorio de la aplicacion):
private sub EjecutarSQL (byval sNumPedido as string)
Dim iArchivoLibre as Integer
Dim sRutaPlantilla as String
Dim sContenido as String
sRutaPlantilla = App.Path & "\PlanillaSQL.bat"
sRutaBat = App.Path & "\SQL.bat"
iArchivoLibre = FreeFile
'Abres la plantilla para leerla
Open sRutaPlantilla For Input As #1
'creas el bat para escribir en el
Open sRutaBat For Output As #2
Lees la plantilla hasta el final (por si tiene varias lineas)
Do while Not EOF(1)
'lees el primer renglon y lo guardas en contenido
Input #1, sContenido
'Esto busca la cadena entre llaves y la rremplaza por snumpedido
' si no la encuentra no hace nada
sContenido = Replace(SContenido, "{CODIGO_PEDIDO}",
sNumPedido
'escribes en el archivo bat final la linea ya corregida (con el dato)
Print #2, sContenido
Loop
Close #1
Close #2
'si tuvieras que ejecutar el bat haces
ShellExecute sRutaBat
End Sub
Espero que sea esto lo que necesitabas. Sino cualquier cosa enviame un mail y vemos como lo hacemos
Saludos!!!