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ú

Temas - Baldomero123

#1
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.
#2
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.
#3
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.
#4
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.
#5
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.
#6
 ver si alguien me consigue sacar del atasco.  En el código siguiente se m da como resultado de la suma NULL, cuanto todos los campos de la columna de la columna 'importe' en la tabla remesas están bien están debidamente llenos:
Cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0.;Data source=C:\users\Alberto Moreno Gil\Documents\Lending.mdb"
    Cn.Open
    Rs.Open "SELECT COUNT(0)AS 'cuantosinv' FROM inversores", Cn, adOpenStatic, adLockPessimistic
    cuantosinvx = Rs(0)
        MsgBox cuantosinvx, 16, "Nº inversores" ' cuantosinvx es la variable que indica el nº de inversores. Ciclo exterior.
    Rs.Close
    Rs.Open "SELECT COUNT(0)AS 'cuantasplat' FROM plataforma", Cn, adOpenStatic, adLockPessimistic
    cuantasplatx = Rs(0)
        MsgBox cuantasplatx, 16, "Nº plataformas" ' cuantasplatx es la v. que indica el nº de plataformas. Ciclo interno
    Rs.Close
    '+++++++++++++++++++++
    'CICLO EXTERIOR (DE LOS INVERSORES)(principio)
    tfin = 0
    Rs.Open "SELECT * FROM inversores ORDER BY inversor", Cn, adOpenStatic, adLockPessimistic
    Rs.MoveFirst
    Do While tfin < cuantosinvx
        inversorx = Rs.Fields.Item(1)
        'CICLO INTERIOR (principio)
        Rs1.Open "SELECT SUM(importe) AS 'granremesa' FROM remesas WHERE INVERSOR = ' " & inversorx & " ' ", Cn, adOpenStatic, adLockOptimistic
        remesatot = Rs1(0)
        MsgBox remesatot, 16, "Importe remesas"
       
En Rs1(0) me da como resultado de la suma NULL y a partir de ahí todo ya está mal. "inversorx" que es la condición está bien tanto en la línea de código como en una MsgBox que puse.
En cuanto a las comillas y comas de inversorx en la expresión SQL creo que están bien. Me he dado varias vueltas por la red intentando aclararlo, pero nada. Gracias.
#7
Programación Visual Basic / Descargar MSDN
29 Diciembre 2017, 07:13 AM
Hago algunas modificaciones en el código y cuando quiero "Guardar el   ...frm" recibo el mensaje "Error de acceso a ruta o archivo: (y me sale la ruta en la que está cargado el .frm)". No me deja guardar el frm modificado y sigue como estaba antes. Pulso en ayuda y me dice que falta MSDN y debo cargarlo. No creo que me falte, pero en todo caso busco dónde encontrarlo para descargarlo. ¿Dónde puedo encontrar para descargar el MSDN?
Gracias.
#8
Recibo el mensaje:  "Error 3709. No se puede utilizar la conexión para realizar esta operación. Está cerrada o no es válida en este contexto."
Cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Alberto Moreno Gil\Mis documentos\lending.mdb "
'AMG GROW.LY
'+++++++++++++++++++++
CurrentX = 2000
CurrentY = 10
Dim plataf As String
Print " AMG     Plataforma    Remesas    Cobros    Préstamos   Saldo"


CurrentX = 2500
CurrentY = 300
plataf = "GROW.LY"
'REMESAS
Rs.Open "SELECT SUM(importe) AS 'importerem' FROM remesas WHERE inversor = 'AMG' AND platform = 'aGROW.LY' ", Cn, adOpenDynamic, adLockPessimistic

Lo chocante es que me ha estado funcionando y en el momento en que he copiado (duplicado) unas líneas de código me ha aparecido este mensaje. He "comentado" las líneas copiadas pero ya me queda sin funcionar. ¿Qué puede ser? Muchas gracias.