CREATE PROCEDURE sp_BuscaCrono
@codigo numeric(3)
AS
select D.DETC_FECINI, A.ACTI_descri from
DETALLE__CRONOGRAMA_SA AS D,
ACTIVIDAD_SA AS A
where A.ACTI_CODIGO=D.ACTI_CODIGO and PROG_CODIGO= @codigo
Este es el codigo de mi formulario
Private Sub Command2_Click()
Dim sql As String
Dim rs1 As New ADODB.Recordset
Dim codigo As Integer
codigo = CInt(cbPrograma.ItemData(cbPrograma.ListIndex))
If cbPrograma.ListIndex <> -1 Then
DataGrid1.ClearFields
D1.sp_buscacro (codigo)
Set rs1 = D1.rssp_buscacro 'D1 , es mi conexion mediante el dataenvironment
Set DataGrid1.DataSource = rs1
Do While Not rs1.EOF
DataGrid1.Columns(0) = rs1!DETC_FECINI
DataGrid1.Columns(1) = rs1!ACTI_descri
rs1.MoveNext
Loop
rs1.Close
End If
End Sub
Private Sub Form_Load()
rs.Open "Select * from PROGRAMA", CN, adOpenForwardOnly, adLockOptimistic
Do While Not rs.EOF
cbPrograma.AddItem (rs!PROG_NOMCOR)
cbPrograma.ItemData(cbPrograma.NewIndex) = rs!PROG_CODIGO
rs.MoveNext
Loop
rs.Close
Y el error que me genera es el siguiente " error 7010 en tiempo de
ejecución, La columna es de solo lectura."
Muchas gracias de antemano por la ayuda
Noelia Gutierrez
Noelia Gutiérrez Jave <nogu...@ec-red.com> wrote in message
news:#nmkBuESAHA.211@cppssbbsa03...
DataGrid1.Columns(0) = rs1!DETC_FECINI
"David Maralb." <david_...@hotmail.com> escribió en el mensaje
news:ukVqn1ESAHA.261@cppssbbsa05...
Despues de obtener el RecordSet lo Seteo directamente a la propiedad
DataSource del DataGrid, de esa forma el grid se basa en el RecordSet para
desplegar sus datos, por lo cual el RecordSet yo lo dejo como una variable
global para tenerla disponible siempre, ahora segun yo cuando obtienes un
record set por medio de la ejecucion de un SP, la unica forma que no puedes
abrir es ForwarOnly lo que significa que solo lo podras navegar una ves, por
lo cual no esta Bookmarckable (o algo asi) que es una propiedad de un
RecordSet necesaria para poderlo usar como DataSource de un DataGrid, bueno
pero eso noquiere decir que no se pueda hacer algo, yo lo que hago es
realizar una conversion, que seria la siguinte:
Sub ConvertFRecordSetTOKRecordSet(ByVal FRecordSet As ADODB.RecordSet,
KRecordSet As ADODB.RecordSet)
'Convertimos el Record Set obtenido en Uno Bokmarkable
Dim mField As ADODB.Field
For Each mField In FRecordSet.Fields
KRecordSet.Fields.Append mField.Name, adBSTR
Next mField
KRecordSet.Open
Do While Not FRecordSet.EOF
KRecordSet.AddNew
For i = 0 To FRecordSet.Fields.Count - 1
KRecordSet(i) = FRecordSet.Fields(i).Value & ""
Next
FRecordSet.MoveNext
Loop
'Fin de la Conversion
End Sub
y la usas mas o menos asi:
Dim NewRecordSet as new RecordSet
'Esta linea Obtiene el RecordSet de la ejecucion del SP
Set RecordSet = Command.Execute
ConvertFRecordSetTOKRecordSet NewRecordSet,RecordSet
Ojala te sirve. Saludos.