Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
CAI Visual Basic - Ej DJ
'DJ 'Ejercicio DJ ' Desarrollar la subrutina busquedaAvanzadaPrueba, que se pidió para validar la funcionalidad de la aplicación ' (o sea, no tiene ningún funcionamiento útil para el negocio) y genera un listado de resultados en base a múltiples criterios de búsqueda. ' ' Esta función recibe 5 parámetros. El primero indica la cantidad de tiempo máximo ' que puede durar la canción (tener en cuenta que en la tabla está expresado en segundos); ' el segundo indica si se desean solo álbumes oficiales o todos (tanto oficiales como “de los otros”); ' el tercero indica el código del género deseado; el cuarto indica el código de formato buscado; ' y el quinto indica el año de lanzamiento (si se recibe cero en este parámetro, no se debe filtrar por año). ' Con los elementos que coinciden, cargar el listbox lstResultadoBusquedaAvanzada indicando el nombre de la canción ' ' y conservando el código de la misma dentro del control. Private Sub busquedaAvanzadaPrueba (duracionCancion as Single, oficialSiNo as Boolean, _ codigoGenero as Integer, codigoFormato as Integer, anoLanzamiento as String) 'Dimensiono todos los recordset que voy a usar dim cancion as Recordset set cancion = abrirTabla("Cancion", oDB) dim albumes as Recordset set albumes = abrirTabla("Album", oDB) dim genero as Recordset set genero = abrirTabla("Genero", oDB) dim formato as Recordset set formato = abrirTabla("Formato", oDB) ' Dimensiono flags flagAlbum as Boolean flagFormato as Boolean flagGenero as Boolean ' Inicializo todos los flags flagAlbum = False flagFormato = False flagGenero = False dim criterioCancion as String criterioCancion = "cnc_duracion >" & duracionCancion cancion.findFirst criterioCancion Do while not cancion.noMatch ' Busco la que cumpla con el criterio de album dim criterioAlbum as String dim ano as String ano = Format(album("alb_fecha"), 'yyyy') if anoLanzamiento <> 0 then criterioAlbum = "alb_oficial =" & oficialSiNo & " AND " & ano & "= #" & anoLazamiento &"#" & " AND alb_codigo =" & cancion("cnc_alb_codigo") else criterioAlbum = "alb_oficial =" & oficialSiNo & " AND alb_codigo =" & cancion("cnc_alb_codigo") end if album.findFirst criterioAlbum Do while not album.noMatch flagAlbum = True album.findNext criterioAlbum Loop ' Busco la que cumpla con el criterio de formato dim criterioFormato as String criterioFormato = "fmt_codigo =" & codigoFormato formato.findFirst criterioFormato Do while not formato.noMatch flagFormato = True formato.findNext criterioFormato Loop ' Busco la que cumpla con el criterio de genero dim criterioGenero as String criterioGenero = "gen_codigo =" & codigoGenero genero.findFirst criterioGenero Do while not genero.noMatch flagGenero = True genero.findNext criterioGenero Loop 'Si todas las condiciones fueron encontradas lo agrego sino msgbox if flagAlbum = True And flagFormato = True And flagGenero = True then agregarItemLista lstBusquedaAvanzada, cancion("cnc_nombre"), cancion("cnc_codigo") Else msgBox "No se ha encontrado cancion con los parametros solicitados" End if cancion.findNext criterioCancion Loop 'Cierro tablas cerrarTabla cancion cerrarTabla album cerrarTabla formato cerrarTabla genero End Sub Private sub buscarAlbum (nombreAlbum as String, cantMinCanciones as Integer) lstResultadoBusqueda.clear dim album as Recordset set album = abrirTabla("Album", oDB) dim criterioAlbum as String criterioAlbum = "alb_nombre like '"& nombreAlbum &"*'" ' Busco el album que se llame como lo que ingresa el usuario album.findFirst criterioAlbum Do while not album.noMatch dim totalCanciones as Integer totalCanciones = cantidadDeCanciones album("alb_codigo") ' Chequeo que las canciones que contiene el album sean mayor al minimo que ingreso el usuario if totalCanciones > cantMinCanciones then agregarItemLista lstResultadoBusqueda, album("alb_nombre") & format(album("alb_fecha"), 'dd/mm/yyyy'), album("alb_codigo") Else msgBox "No hay album que contenga mas de " & cantMinCanciones & "Canciones" End if album.findNext criterioAlbum Loop End Sub Private sub (codArtista as Integer) dim artista as Recordset set artista = abrirTabla("Artista", oDB) 'Dimensiona el string que voy a llenar con info de todos mis artistas influenciadores dim artistasInfluenciadores as String artistasInfluenciadores = "" dim criterioArtista as String criterioArtista = "art_codigo =" & codArtista 'Me paro sobre el artista que me paso el usuario artista.findFirst criterioArtista do while not artista.noMatch ' dimensiono la tabla de artistas influenciadores y la loopea para ver quienes me influenciaron dim artistaInfluencer as Recordset set artistaInfluencer = abrirTabla("ArtistaArtista", oDB) dim criterioInfluencer as String criterioInfluencer = "aat_art_codigo =" artista("art_codigo") artistaInfluencer.findFirst criterioInfluencer do while not criterioInfluencer.noMatch ' Estoy parado sobre el primer artista que me influencio ' Dimensiono una instancia nueva de la tabla artistas para traerme la info de los artistas que me influenciaron dim artista2 as Recordset set artista2 = abrirTabla("Artista", oDB) dim criterioArtista2 as String criterioArtista2 = "art_codigo =" artistaInfluencer("aat_art_codigo_influencia") artista2.findFirst criterioArtista2 ' por cada artista que me influencio me traigo su informacion y la concateno do while not artista2.noMatch artistasInfluenciadores = artistasInfluenciadores & artista2("art_nombre") & artista2("art_codigo") & artista2("art_biografia") & "---" artista2.findNext criterioArtista2 Loop artistaInfluencer.findNext criterioInfluencer cerrarTabla artista2 Loop ' Por cada artista que me haya pasado el usuario voy a traer la info de ese artista y la info de TODOS los artistas que lo influenciaron agregarItemLista lstInfoArtista, artista("art_nombre") & CStr(artista("art_codigo")) & artista("art_biografia") _ & "Artista influenciadores: " & vbtab & artistasInfluenciadores artista.findNext criterioArtista cerrarTabla artistaInfluencer Loop cerrarTabla artista End sub Public function cantidadDeCanciones (codigoDeAlbum as Integer) as Integer dim total as Integer total = 0 dim canciones as Recordset canciones = abrirTabla("canciones", oDB) dim criterioCancion as String criterioCancion = "cnc_alb_codigo =" & codigoDeAlbum canciones.findFirst criterioCancion Do while not criterioCancion.noMatch total = total + 1 canciones.findNext criterioCancion Loop cantidadDeCanciones = total cerrarTabla canciones End function
run
|
edit
|
history
|
help
0
jjj
Range List for VisualBasic.NET
pepe
Project Euler 1
pgcd def
exercicio 2
Rounding behaviours
Visual-Basic
rotina de professores (select case)
hckhckhhkck