SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => VBA => Mensaje iniciado por: julietagonzalez405 en Lunes 29 de Diciembre de 2008, 18:20
-
HOLA a todos, quisiera si pueden me resuelvan una duda. Confeccione un programita en VB 6.0 con MSAcces y la verdad es que todo andaba bien los primeros dias, era un chiche el programa. Pro a medida que se llenaba la BD el programa se hace cada vez mas lento. Como puedo solucionarlo? Tengo en la base 4000 registros mas o menos que se conectan de uno a muchos con otra tabla que tendra en promedio 2 registros por cada uno del maestro. Agradeceria mucho cualquier aporte. Gracias
-
Revisa que no hayá redundancía de datos, los índices de las tablas, tienes que normalizar bien la DB.
-
gracias Edo, lo voy a revisar. Saludos
-
Efectivamente, si el problema es de base de datos , debe estar por los indices,relaciones,llaves ... y no es propiamente de VBA
pero si tu problema es de programacion, tus metodos de acceso, tus funciones para tratamiento de datos, busquedas, recorridos de registros etc, entonces deberas mostrarnos el codigo para ver si se puede 'eficientar' con aportaciones 'nuestras' :P
Pero parece ser que es lo que ya ha comentado Edo
Saludos
-
la verdad es que sigo teniendo el mismo problema, quisiera por favor le peguen una miradita al codigo de la rutina que me esta trayendo este problema para ver que les parece.Es un form que trae el registro seleccionado en un datagrid para cargarle datos adicionales y guardarlos en otra tabla con el id como referencia. gracias
Private Sub cmdNew_Click()
If CboCamp.Text = "" Then
MsgBox ("Por favor complete los datos de la campaña")
Else
If selec Then
DataGrid1.col = 0
isInscr = Me.DataGrid1.Columns(0).CellValue(Me.DataGrid1.Bookmark)
selec = False
ConsLote = " SELECT Lotes.idDepart as Departamento, Lotes.Lote, Lotes.Colonia, Lotes.SupTotal, Lotes.SupAgr, " & _
" Lotes.IntSiembraAlg as IntSiembra " & _
" FROM Productores, Lotes Where Productores.idProd = Lotes.idProductor and Productores.idProd = " & isInscr & ""
Adodc2.ConnectionString = miConn
Adodc2.RecordSource = ConsLote
Adodc2.Refresh
rs.Open " SELECT Productores.idProd, Productores.ApellProd, Productores.NomProd, Productores.Delegado, Productores.hasProd " & _
"FROM Productores " & _
" where Productores.idProd = " & isInscr & ""
With rs
txtRazon.Text = !ApellProd
txtNombre.Text = !NomProd
txtDeleg.Text = !Delegado
LblId.Caption = !idProd
LblHasProd.Caption = !HasProd
End With
rs.Close
Verif = "SELECT Lotes.idLote, Lotes.idDepart as Departamento, Lotes.Lote, Lotes.Colonia, Lotes.SupTotal, Lotes.SupAgr, " & _
" Lotes.IntSiembraAlg as IntSiembra , V.LatGra, V.LatMin, V.LatSeg, V.LonGra, V.LonMin, V.LonSeg, " & _
" V.SupSembrada, V.TipoSiembra, V.Anchsurc, V.EstadCult" & _
" FROM Verificaciones V , Lotes "
'"Where Verificaciones.idProd = Lotes.idProductor And Lotes.idProductor = " & isInscr & """"
Adodc3.ConnectionString = miConn
Adodc3.RecordSource = Verif
Adodc3.Refresh
FrmNuev.Visible = True
TxtObs.Visible = True
cmdLimpiar.Visible = False
Else
MsgBox ("Por favor seleccione un registro a cargar")
DataGrid1.SetFocus
End If
End If
Activar
CboDep.Enabled = True
TxtLote.Enabled = True
TxtProp.Enabled = True
TxtCol.Enabled = True
TxtLatGra.Enabled = True
TxtLatMin.Enabled = True
TxtLatSeg.Enabled = True
TxtLonGra.Enabled = True
TxtLongMin.Enabled = True
TxtLongSeg.Enabled = True
TxtSupSemb.Enabled = True
CboTipoSiemb.Enabled = True
CboAnch.Enabled = True
CboEstad.Enabled = True
TxtFecha.Enabled = True
CboCamp1.Enabled = True
TxtObs.Enabled = True
CboCamp.Enabled = True
Check2.Enabled = True
Check3.Enabled = True
Check1.Enabled = True
cboDel.Enabled = True
cboLoc.Enabled = True
End Sub