Parametros en Comandos SQL de Data Environ.

Truebano
21 de Abril del 2005
Hola a todos!
Estoy trabajando con Visual Basic 6 en una aplicación para manejar una base de datos Access. Para la creación de los DataReport correspondientes, obviamente, ganaría mucho tiempo pudiendo realizar todos ellos a partir de comandos bajo DataEnvironment. Sin embargo, y ahí está mi problema, no encuentro forma de definir en dichos commands los parámetros que necesito para algunas de las consultas. Veo la correspondiente pestaña dentro de las propiedades del comando pero no soy capaz de añadir nada en la misma. Os agradecería mucho alguna indicacíón al respecto, ya que aunque puedo también utilizar directamente objetos DAO normales, me ahorraría creo bastante trabajo el poder usar DE.
Nada +,un Saludo!

VVG(F)
21 de Abril del 2005
En la propiedad de tu command1, en instruccion sql pega el siguiente codigo.
En la pestaña de propiedades te aparecera una w, con la que puedes mandar el parametro desde tu formulario.
SELECT Orders.ShipName, Orders.ShipAddress, Orders.ShipCountry, Orders.OrderID, Orders.CustomerID, Orders.OrderDate, Orders.RequiredDate, Orders.ShippedDate, Orders.ShipCity + ' ' + Orders.ShipPostalCode AS shiptocityzip, Orders.Freight, Employees.FirstName + ' ' + Employees.LastName AS Salesperson, Shippers.CompanyName AS shipvia, Customers.CompanyName, Customers.Address, Customers.Country, Customers.City + ' ' + Customers.PostalCode AS billtocityzip, SUM(`Order Details`.UnitPrice * `Order Details`.Quantity - `Order Details`.UnitPrice * `Order Details`.Quantity * `Order Details`.Discount) AS Subtotal, Subtotal + Orders.Freight AS Total FROM Orders, Customers, Shippers, Employees, `Order Details` WHERE Orders.CustomerID = Customers.CustomerID AND Orders.ShipVia = Shippers.ShipperID AND Orders.EmployeeID = Employees.EmployeeID AND Orders.OrderID = `Order Details`.OrderID GROUP BY Orders.ShipName, Orders.ShipAddress, Orders.ShipCity + ' ' + Orders.ShipPostalCode, Orders.ShipCountry, Customers.CompanyName, Customers.Address, Customers.City + ' ' + Customers.PostalCode, Customers.Country, Orders.OrderID, Orders.CustomerID, Employees.FirstName + ' ' + Employees.LastName, Orders.OrderDate, Orders.RequiredDate, Orders.ShippedDate, Shippers.CompanyName, Orders.Freight HAVING (Orders.OrderID = w)

diego
21 de Abril del 2005
entras en command1 (el que quieras) seleccionas instruccion sql y al poner tu sql ponle el nombre del parametro que quieras ejemplo:
"select * from socios where nombre=nom"

Una vez hecho esto te vas a la pestaña de parametros y veras como ya te aparece nom como un parametro.. Despues en tu codigo

DataEnviroment1.command1 ("pepillo")
¡¡¡ya le puedes pasar parametros!!!
Si tienes alguna otra duda escribeme
Saludos

Franck Rodr?ez
21 de Abril del 2005
Puedes pasarle parametros a los DataReport de la siguiente manera:

ya configurado el dataenviroment y el datareport, haz click derecho sobre la coneccion y agrega un comando.
Luego en el origen de datos de las propiedades del comando escribe la sentencia sql de la siguiente forma (ejemplo de la base de datos biblio.mdb):

select * from authors where author=?

Presiona aceptar y vuelve a entrar en las propiedades del comando para configuar el parametro, este ya deberia estar en la lista de parametros. Define el nombre del parametro, tipo de dato, etc.
posteriormente liga el parametro a la aplicacion con el siguiente codigo: (ejemplo en un commandbutton_Click, y un text1.text)

Private Sub Command1_Click()
If Text1.Text <> "" Then
DataEnvironment1.Command1 Text1.Text
DataReport1.Show
Else
MsgBox " Texto invalido !!!", vbCritical, "Data Report - Usando Parametros"
End If
End Sub

Nota: Estuve dos horas peleando con visual basic para que lo hiciera, pero es muy secillo.

YUPE
21 de Abril del 2005
Si les Ayuda tambien pueden actualizar datos en el mismo formulario (En este caso en un grilla) :

Private Sub Command1_Click()
DataEnvironment1.rsCOMANDO.Close
DataEnvironment1.COMANDO (Val(Text1.Text))
TDBGrid1.ReOpen

End Sub