Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Baldomero123

#1
Bueno eso de "Archivos de aplicación" no es como lo tengo sino como está en el ordenador "Archivos de programa". Ya le he dado una solución de aquella manera. Gracias y hlgo, Alberto.
#2
Bs ds:
Una consulta que para vosotros será una simpleza, pero a mí me trae de cabeza (valga el pareado). Tengo una BD Access  2007 con las tablas, entre otras, Operaciones, Clientes (clave de tres letras), Platform. Pretendo obtener un listado de Operaciones filtradas por el Cliente que yo desee y que aparezca en DataGrid, preferentemente o como sea, y que esté ordenado  por Platform y fechainic (un campo dentro de Operaciones) DESC.  Lo ideal sería "coger un Cliente de su tabla" y mediante un DataCombo o DataList entrar esta variable en un text. Y de éste al ADODC de DataGrid y obtener lo que deseo. Como no consigo que esta parte de "coger un Cliente de su tabla" me funcione  he ido a un procedimiento  más rústico: crear un txt1.text y en él entrar a mano la clave del Cliente (tres letras) para pasar esta variable ' " & txt1.text & " ' en el SQL del ADODC de la DataGrid. No funciona.  ADODC1 que es también el ADODC de la DataGrid.
En código
He creado un txt1.text para entrar a mano la clave del cliente.  Si pongo en la orden SQL del ADODC:
SQL * FROM operaciones WHERE cliente = "AMG" ORDER BY platform, fechainic DESC.
Funciona perfectamente
Pero si entro a mano en txt1.text AMG u otra clave de cliente y en la orden SQL del ADODC:
SQL * FROM operaciones WHERE cliente = ' " & Ltrim(txt1.text)  & " ' ORDER BY platform, fechainic DESC. No ocurre nada. He hecho probaturas sin Ltrim, con " " " & txt1.text& " " " , en fin, todo lo que se me ha ocurrido.
Aparece la DataGrid  pero vacía, aunque antes y después de la orden SQL mediante MsgBox aparece que txt 1.text = "AMG" o cualquier otra variable que se haya tecleado en txt1.text
Es mi última dificultad. ¿Me podríais echar una manita? Mil gracias, Alberto.
#3
Buenas tardes.
Tengo una aplicación que funciona perfectamente con su BD en cuanto a añadir, editar, suprimir registros. El camino que le tengo puesto es C:\Program files\Microsoft Visual Studio\VB98\lending.mdb . Así está en todos los ADODC con enlace comprobado y funcionando la aplicación-. Pero quiero entrar a la BD con Access y no me deja, con el mensaje :"No se pudo encontrar el archivo C:\... lending.mdb". Entro por
C:\archivos de aplicación ...VB\ y no está visible este archivo lending.mdb. Entro por el Visual Basic y sí aparece, pero cuando quiero abrirlo me dice "No se puede cargar lending.mdb". Lo cual me crea un problema gordo si pretendo distribuir la aplicación con su base de datos. ¿Qué puedo hacer para tener acceso as este archivo? Muchas gracias.
#4
Quiero entrar en la condición WHERE de una query SQL la condición que la fecha sea menor que una que he entrado en una Maskedbox.
En otras palabras, quiero obtener de la tabla prestamos un Recordset con los registros que cumplan unas condiciones; plataforma, inversor y fecha a partir de la cual se hizo la operación.
Estos valores de condición los he escrito fuera en unas textbox y la fecha en una MaskEdBox. Luego he escrto en el código
plataf = Texbox1.text
inver =  Textbox2.text
fecha1 = MaskEdBox1.text
Rs.Open  "SELECT * FROM prestamos WHERE plataforma = """ & plataf & """ AND inversores = """ & inver & """ AND fechainic =....., Cn, ...
Para la condición de fechainic he hecho un montón de tentativas, por ejemplo
fechainic <= ' " & Format(MaskEdBox1,  "mm/dd/yyyy")

Ninguna de ellas me ha funcionado. Recibo el mensaje "Data type mismatch in criteria expresión." La fecha (fechainic) está en Access 2007 como fecha/hora, fecha corta 01/01/2010. Pregunto ¿Cómo debo entrar la variable (fechainic) a la query SQL? Las demás condiciones funcionan perfectamente. Gracias.
#5
Quiero crear un Recordset de la tabla prestamos con las condiciones en platform y en inversor. Las variables han pasado perfectamente a la query. pero...recibo la respuesta "Error 3001 en tiempo de ejecución. Argumentos incorrectos, fuera del intervalo permitido o en conflicto con otros ." El código que he puesto es: En la condición tenía además una fecha, pero la he quitado para ver si aclaraba la cuestión y no.

Rs.Open "SELECT  * FROM prestamos  ORDER BY fechainic WHERE platform = """ & platform & """ AND inversor = """ & pepito & """ ", Cn, adOpenStatic, adLockOptimist

¿Alguna idea salvadora? Gracias.
#6
Solucionado. Entre las líneas 13 y 14 faltaba j = 0 para inicializar el contador del ciclo interior.
#7
Buenos días:
Tengo un ciclo exterior de inversores Rs, otro ciclo interior de plataformas Rs1(donde han invertido los inversores) y dentro del ciclo interior la suma de lo que cada inversor ha invertido en cada plataforma Rs2.
El problema es que sólo me funciona en la primera parte, es decir obtengo como salida:
inversores     Plataformas  Importes
A                    Lendix           1000
                      Lendopolis     1200
                      Groiw.ly         1400
                        .....                ...,
B
C
...

'CICLO EXTERIOR (DE LOS INVERSORES)(principio Rs)
   
    tfin = 0
    Rs.Open "SELECT * FROM inversores ORDER BY inversor", Cn, adOpenStatic, adLockPessimistic
    Rs.MoveFirst
    Do While tfin < cuantosinvx   'cuantosinv es el nro de inversores
        inversorx = Rs.Fields.Item(1)
        CurrentX = 500
        CurrentY = CurrentY + 500
        Print inversorx
       
        'CICLO INTERIOR (PLATAFORMAS principio Rs1)
        Rs1.Open "SELECT * FROM plataforma ORDER BY platform", Cn, adOpenStatic, adLockOptimistic
        Rs1.MoveFirst
        CurrentY = CurrentY - 100
       
        Do While j < cuantasplatx   'cuantasplatx es el nro de plataformas
         platformx = Rs1(1)
         CurrentX = 1300
          CurrentY = CurrentY - 100
       
          Print platformx
           Rs2.Open "SELECT SUM(importe) AS importex FROM remesas WHERE inversor = """ & inversorx & """ AND platform = """ & platformx & """ ", Cn, adOpenStatic, adLockOptimistic
          If Not IsNull(Rs2(0)) Then
            importex = Rs2(0)
            Else
             importex = 0
          End If
          CurrentX = 3000
          CurrentY = CurrentY - 100
            Print importex
       
          Rs2.Close
       
          Rs1.MoveNext 'Mover a la siguiente plataforma
             j = j + 1
                   
          Loop   'Ciclo de las plataformas Rs1
          Rs1.Close      'cerramos el Recordset de las plataformas 
          Rs.MoveNext 'Mover al siguiente inversor
          tfin = tfin + 1
     Loop  'Ciclo EXTERIOR (de los inversores Rs)
     tfin = 0
     Rs.Close

Mi pregunta es: ¿por qué funciona bien con el primer inversor cogiendo el ciclo de las plataformas y con los demás inversores pasa de largo sin coger el ciclo interior?
Muchas gracias.
#8
Muy buenos días.
Lo intenté sin éxito. Buscando después, en una página de Microsoft  especializada en comas, comillas y cometas encontré estas instrucciones que sí me han solucionado al fin:

Rs.Open "SELECT * FROM inversores ORDER BY inversor", Cn, adOpenStatic, adLockOptimistic
    Rs.MoveFirst
   inversorx = Rs(1)
    MsgBox inversorx, 16, "Inversor 1º"  'Me devuelve en inversorx = "AMG"
   
    Rs1.Open "SELECT SUM(importe)  FROM remesas WHERE inversor = """ & inversorx & """", Cn, adOpenStatic, adLockOptimistic
    totalrem3 = Rs1(0)
    MsgBox totalrem3, 16, "Suma de las remesas de inversorx "  'FUNCIONA
   
    Rs1.Close
    Rs.Close

Tengo que decir que en esta página dice que esto de las """& ... & """" (tres " más la final " es  equivalente al procedimiento que tú me indicaste, pero el procedimiento de las tres " me ha funcionado y el otro no. Misterios.
Muchas gracias por aguantar  la matraca que te he dado y feliz año.
#9
Hola, de nuevo. Efectivamente inversorx es una variable. He hecho con el ratón como me has dicho y en Definición me dice "No se reconoce el identificador que está debajo del cursor". Esto en un Recordset, creo que Rs2, pero en la línea inmediatamente anterior de código, en Rs1(1), sí aparece inversorx como reconocido y con un valor. Por si fuera cosa de Public o Private he puesto al principio del módulo: Public inversorx As Var.  Sigue con el mensaje de "no se reconoce...". Seguiremos con la lucha. Gracias y hasta luego.
#10
Muchísimas gracias por tu respuesta y consejos. Imprimo y estudiaré "most carefully" tu contestación. Tras que mis conocimientos son los que son, a base de darle vueltas y vueltas a esta cuestión ya estaba aprendiendo a decir "carchuto" . Feliz año nuevo.