BandaAncha

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate

VISUAL BASIC 6.0 + BASES DE DATOS + DBGRID

BocaDePez

Pues despues de 2 o 3 semanas sin pasarme por este gran foro.. veamos si pueden ayudarme con un par de problemillas que tengo para un programa de altas de voluntarios... :

1. DBGRID. Necesito que ese DBGrid cambie segun lo que quieran buscar, es decir, tengo 5 botones de busqueda ( funcionan bien, por nombre, por apellido, por dni, por programa... ) y bueno al ladito tengo un DBGRID y quiero que le de a VER TODOS y me salgan todos los usuarios de la base de datos en el dbgrid y quiero que le de a Buscar por nombre ponga el nombre y en el centro solo me salga los nombres que he puesto... Mi problema no es buscar que como ya digo funciona bien sino que primero no puedo poner la propiedad recordsource del dbgrid con nada porque mi control Data esta en otro formulario... ( en el form principal ). Entonces pense cambiar la propiedad esa a la hora de buscar pero tampoco es la solucion porque no tengo que poner una sentencia ni nada sino un objeto , es decir, ponga lo que ponga me da error y me dice necesitas un objeto... e probao :

DBGrid.recordsource = frmMDI.Data1

y lo mismo pero con un moton de propiedades del data1 haber si funcionaba pero nada... he leido en una web inglesa que solo se puede hacer con conexiones ado pero tampoco me lo creo mucho.. XD ya que es cambiar una p. propiedad en tiempo de ejecucion para que mi DBGrid salga con los registros que yo quiera...

Otra cosa es poner en el DBGrid solo los campos que yo quiero ( nombre,apellido1,apellido2 y el campo a buscar por ejemplo DNI o FECHAalta ) pero bueno esto no creo que me de muchos problemas en comparacion con lo otro...

MUCHAS GRACIAS haber si hay solucion

BocaDePez

Form1.DBGrid1.Loquesea no te funciona? Ya hace años que no programo en VB, pero eso funcionaba. Yo usaba un truco sucio (alguna vez) tener un formulario con los data si había varias bases de datos y así las podía llamar desde varios sitios. Útil para BD pequeñitas y sin tener que escribir un módulo para la reconexión. Hoy día no sé como lo haría :) mi estilo ha cambiado mucho.

🗨️ 1
BocaDePez

tu estilo ha cambiado? y como programas ahora? con que?

y no no funciona eso... XD segun el problema que me da es este :

esta clase no admite automatizacion o no admite la interfaz esperada...

Me urge solucionarlo ya que es un programa interno de mi empresa que estoy haciendo desde 0 para dar de alta usuarios y me gustaria que en el dbgrid saldrian solo los datos que yo e seleccionado mediante mi sql y luego poder acer DBLCLICK en el dbgrid encima de un registro y que ese registro se seleccione para ver sus datos, modificarlo o borrarlo.

BocaDePez

Bueno me puesto a programar aora con el adodc que segun inet se puede hacer lo que queria pero ahora me da el error de que no me encuentra datos..

BocaDePez

vale ya toy consiguiendo lo que quiero estoy migrando todo las conexiones y bueno de momento se me ocurren mejoras y voy mejorando.. Necesitaria saber ACTUALIZAR un registro

🗨️ 3
BocaDePez

listo actualizado... Necesitaria ahora lo de los filtros.. la opcion que mas me gusta es poner unos chk buttons y poner por nombre por apellido por programa entre fechas fecha y dni que si tengo todos activos me busque en mi base de datos a una persona llamada X con apellido X ( o que empiezen por X ) programa seleccionado entre esta y esta fecha y ademas que tenga este DNI... por ejmplo... como podria hacer eso? voy apegarme porque veo que en este foro de programacion no entra nadie.. :(

🗨️ 2
LineBenchmark

Hombre, si que se entra, y aunque no sea un foro muy concurrido a excepción de otros especializados, de los que entran no creo que haya nadie que te haga las cosas. Hay cosas, sobretodo en estas, que como todo programador, lo primero que hace cuando se tiene un problema es buscar y buscar y probar, hasta llegado al punto de no encontrar la solución exponerla en algún Foro, y en algunos, hasta que no les 'demuestras' con parte de tu código, dónde se localiza el problema, no hay tu tía de nada.

Imagino que has hecho lo mismo por lo que se ha ido viendo, pero créeme que así, y sin ánimos de ser desagradable, nadie te hará nada de buenas a primeras. O mejor dicho, nadie perderá horas en hacerte un post cuando eso está más que documentado por la Red. Y extraño que nadie haya dicho todavía que la empresa pague a un programador para hacer el trabajo. :D

Igualmente, y por si acaso, google.es/#hl=es&source=hp&biw=1680&bih=…39c4eb049229 hay bastante información al respecto. Solo se trata de hacer búsquedas en la BD con el criterio seleccionado por los CheckBox.

Saludos.

🗨️ 1
BocaDePez

Tienes toda la razon, pero no es mi caso... Antes de postear el primer post llevaba 7 horas del primer dia + 1 hora entre que pongo todos los botones etc etc + la hora y media hasta que postee lo primero.... LLevaba buscando y buscando por inet cosas pero no encontraba algo que en verdad me ayudara porque , exceptuando gente BUENA DE VERDAD , mucha gente te soluciona el problema o explica una cosa sin saber hacerlo, me explico... te puedo hablar en chino y que no te enteras de nada o te puedo hablar en chino y intentar que te enteres de algo poniendo ejemplos, comentarios etc etc o al menos a mi asi me han enseñado a programar.... ( se me va el hilo ) te iba diciendo que todos los ejemplos que me bajado de internet estaban faltos de documentacion, no funcionaban 100% o hay unas cuantas funciones que son PAJA y nadie se molesta a quitarlas para evitar confusiones.... de hay que tubiera que preguntar... De todas maneras ya he logrado hacer la busqueda de usuarios y funcionando pero bueno tengo otro problema que posteare nuevo para que se pueda cerrar este hilo.

BocaDePez

SOLUCIONADO

Hize mi conexion a la base de datos con ADODC y luego el DATAGRID y los botones de busqueda( boton1,boton2,boton3... )

En la orden de clic el boton que queramos tenemos que hacer lo siguiente :

- rst.Close ( cerramos el recordset, para entendernos el recordset es el que hace el filtro de la bbdd puede ser para todo y pondriamos select * from tabla o podemos selccionar unas columnas, un registro o cualquier cosita que queramos.

- Guardamos el resultado en una variable mediante inputbox si queremos buscar algo que no sabemos o simplemente si buscamos un nombre fijo ( por ejemplo IMANOL ) pues nos saltamos este paso.

- abrimos el rst con un recorset nuevo : rst.Open "Select * from TABLA where NOMBRE = IMANOL" busca todos los que se llamen IMANOL

o rst.Open "Select * from TABLA where NOMBRE like '" & variable & "'" busca todos los que se llamen con el nombre que guardamos en variable

y ya estaa :D son 2 pasos que me costaron buscar horas .. XD solo queda agregarle al datagrid el nuevo rst y actualizar el datagrid :

datagrid.recordsource = rst

datagrid.refresh

Con eso hacemos busquedas donde queramos.

BocaDePez

Hola tengo una duda viendo los codigo solo me funciona para una sola columna de mi tabla q esta en la base de datos, por ejemplo si quiero hacer unabusquea avanzada de apellidos y nombres ya que la base de datos esta dividida en apellido paterno, materno, nombre1 y nombre2;

como haria parahacer una busqueda por apellidos (materno y paterno) por ejemplo perez campos

🗨️ 2
fervigo

En el campo WHERE del SELECT usar AND para separar las condiciones a cumplir por la busqueda.

En vez de: where condición => where condición1 and condición2

🗨️ 1
BocaDePez

Solucionado ya solucione todos mis problemas, gracia por su ayuda chicos.

BocaDePez

Buenas soy nuevo en este foro pero me intereso como dan solucion a las inquietudes de los demas bueno tengo un problemita muy tonto pero no consigo la manera de solucionarlo.

primero tengo un datagrid leno con sus respeptivos campos pero el cual una de las columnas que tiene se llama "posicion del item"

cuando se va llenando poco a poco el data grid la columna posicion va enumerando cada fila por ejemplo 1,2,3,4,5,6..... 1 el primer registro el 2 el segundo registro y el 3 el tercer registro pero cuando elimino el item 2 quiero que el tres cambie al nuero 2 para asi mantener un orden en esa columna muchas gracias espero su respuesta

🗨️ 1
BocaDePez

Cada vez que borres una linea, renumera manualmente con un bucle For Next la columna "posicion del item"

BocaDePez

como histe el buscar seleccionar un subrubro de trabajo y que en una datalist me aparescan los apellidos de las personas que tienen ese código de subrubro