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 - TheGhost(Z)

#111
Hola, miren que tengo que guardar La ID y el DATO de una tabla en un combo. Lo he intentado con:

Combo1.AddItem "PEDRO" 'Nombre
Combo1.ItemData(.Combo1.NewIndex) = 10 'Codigo del nombre

Combo1.AddItem "JUAN" 'Nombre
Combo1.ItemData(.Combo1.NewIndex) = 11 'Codigo del nombre


Esto me resulta erfectamente, pero no me sale para guadar el ID de tipo String, por ejemplo

Combo1.AddItem "PERU" 'Pais
Combo1.ItemData(.Combo1.NewIndex) = "PE" 'Codigo del pais

Combo1.AddItem "CHILE" 'Pais
Combo1.ItemData(.Combo1.NewIndex) = "CL" 'Codigo del pais


Me arroja el sgte error.. "Llamada a procedimiento o argumentos no validos".. lo que estuve notando es que creo que solo se puede guardar la ID como tipo Numerico, y como yo le estuve metiendo un valor String me arroja error.

¿como puedo hacer para guardar un dato String?


En la web enconre esto...
Estoy llenando un combobox con este codigo:     CmbBox.Items.Add(New
ListItem(texto, valor))


---------------
Do While DR.Read()
    CmbEspec.Items.Add(New ListItem(DR.Item("DESCRIPCION"),
DR.Item("COD_ESPEC")))
Loop
---------------


Me dice "ListItem no esta definido"


Donde esta el error en lo que estoy tratando de hacer???


Gracias,


Edwin.


Saludos,
Pedro

#112
No es por decir man, pero si lo mas profesional es buscando el propio pais en la tabla. no me parece bien.. creo que las id es para ahorrar tiempo durante la busqueda y toda esa nota... creo que me quedare con PERU (PE), ESPAÑA (ES), aunque se vea feo, pero ni modo. saludos
#113
Hola, Chefito.
Es me has entendido, perfectamente en el caso uno..

Lo hago todo por codigo. La nota de poner:

PERU(PE)
ESPAÑA(ES)

Actualmente lo tengo así, pero se ve feo eso de estar poniendo la id al ultiumo ¿no?.

Yo me preguntaba de que otra manera se aría. En realidad no se como trabajan o los haran los otros, porque siembre en un combo he visto solo: PERU, ESPAÑA y las ID´s no se como las esconden. Tambien he intentado poniendo las ID en otro combo en modo invisible. pero es engorroso todo eso.

Si hay alguna idea mejor, le agradecere, sino me quedare con esto nomas.

<------------------------------------->

Con respecto al segundo caso.. es el ejemplo de la sgte manera

PAIS         DISPONIBLE
PERU         SI
ESPAÑA     SI
ITALIA       SI
etc, etc

Supongamos que cargue esos tres paises en un combo. Selecciono ESPAÑA porque su estado es Disponible = SI.

Despues de un tiempo ESPAÑA y PERU su estado Disponible = NO
Entonces si deseo modificar el campo PAIS de mi tabla clientes, tengo que abrir el formulario cargar nuevamente los paises en un combo. españa y peru ya no porque ya no estan disponibles. cargo solo los paises que estan disponibles, pero como le digo en la consula que que cargue el pais ESPAÑA, porque ese es el que he guardado y al ves se muestre por defecto al iniciarse al fomrulario.




#114
No la idea es trabajar con combos. el problema esta como cargar las ID de los paises, para cuando seleccione un pais me filtre las ciudades cuya ID_pais sea la que seleccione..
#115
Hola,
Mas que ayuda pido una sugerancia.

Supongamos que tengo dos tablas: Paises y Ciudades

Tabla Paises

ID_PAIS    PAIS
PE              PERU
ES              ESPAÑA
IT               ITALIA

Tabla Ciudades

ID_PAIS ID_CIUDAD  CIUDAD
PE           LIM              LIMA
ES           MAD             MADRID
ES           BCN             BARCELONA
IT            ROM            ROM

Bien, en el combo1 cargo el listado paises y en el combo2 cargo el listado ciudades, de modo que al seleccionar un pais, autonmaticamente se carguen en el combo2 las ciudades correspondientes a este.

Mi pregunta es como o donde cargo el Id_Pais de la tabla paises si el combo1 me da solo para cargar un campo. pensaba cargarlo asi mas o menos..

PERU (PE)
ESPAÑA (ES)
ITALIA (IT)

O

PE - PERU
ES - ESPAÑA
IT -  ITALIA

O

(PE) PERU
(ES) ESPAÑA
(IT) ITALIA

O

Tambien cargaria en un combo1 solo las ID_PAIS y en otro combo el PAIS
de modo que al seleccionar un pais tambien se seleccione el Id_Pais que estaria invisible, realizar la busqueda a partir de este dato.

¿Cual de las tres es la mejor manera de trabajar o con que modo generalmente se trabaja?

Mi otra pregunta es, una vez guardado el ID_Pais en otra tabla y si deseo modificar esta tabla tendria que cargar en el formulario los paises y ciudades, pero como aria para que el combo muestre automaticamente el pais y ciudad que he guardado.

En palabras podriamos decirle que se cargue todos los paises y ciudades posicionate en el pais x y ciudad x.

Saludos,
#116
Despues de buscar y buscar consegui esto.. Si quieren mas codecs lo sacan de las Macros que se hacen en MS Excel. Espero les sirva.


Private Sub Form_Load()
Dim AppExcel As Excel.Application
Set AppExcel = CreateObject("Excel.Application")

With AppExcel
    .Workbooks.Add
   
    'Formatos
    With .Range("A1")
        .Font.Size = 18
        .Value = "NUCLEAR SILO READY!"
        .Font.Bold = True
        .Font.Name = "Arial Narrow" ' , etc, etc
    End With
   
  ' alinear celda
    With .Range("C11")
        .HorizontalAlignment = xlLeft
        .VerticalAlignment = xlTop

         'Reducir hasta ajustar
        .ReadingOrder = xlContext
        .WrapText = True
    End With

   'Combinar celdas
  .Range("D14:E15").Merge


    'Auto ajustar
    .Range("B:B").EntireColumn.AutoFit
    ' Ancho de columnas
    .Range("C:C").ColumnWidth = 26.71
    .Range("D:D").ColumnWidth = 28.57
    .Range("E:E").ColumnWidth = 10.29
   
    'margenes de la hora de imprecion
    .Sheets("Hoja1").PageSetup.LeftMargin = Application.InchesToPoints(0.13)
    .Sheets("Hoja1").PageSetup.RightMargin = Application.InchesToPoints(0.13)
    .Sheets("Hoja1").PageSetup.TopMargin = Application.InchesToPoints(0.13)
    .Sheets("Hoja1").PageSetup.BottomMargin = Application.InchesToPoints(0.13)

    'Bordes
    .Range("D14:G15").Borders(xlEdgeTop).LineStyle = xlContinuous
    .Range("D14:G15").Borders(xlEdgeTop).Weight = xlThin
   
    .Range("D14:G15").Borders(xlEdgeBottom).LineStyle = xlContinuous
    .Range("D14:G15").Borders(xlEdgeBottom).Weight = xlThin
   
    .Range("D14:G15").Borders(xlEdgeLeft).LineStyle = xlContinuous
    .Range("D14:G15").Borders(xlEdgeLeft).Weight = xlThin
   
    .Range("D14:G15").Borders(xlEdgeRight).LineStyle = xlContinuous
    .Range("D14:G15").Borders(xlEdgeRight).Weight = xlThin
   
    'Proteger hoja (sin contraseña)
    .Sheets("Hoja1").Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
   
    'Cambiar de nombre a la hoja
    .Sheets("Hoja1").Name = Format(2007, "0000000000")
   
    'Mostrar libro
    .Visible = True
   
    'Guardar libro
    .ActiveWorkbook.SaveAs App.Path & "LOL.xls"
    ' imprimir libro
    .Sheets("Hoja1").PrintOut Copies:=1, Collate:=True
    'cerrar
    .Quit
    Set AppExcel = Nothing
End With
End Sub
#117
Hola si alguien sabe alinear una celda de excel desde vb.

Me han pasado un codigo:
.Range("B4:L4").HorizontalAlignment = True

Pero no alinea nada..
#118
Programación Visual Basic / Re: DISTINCT SQL
15 Julio 2007, 08:43 AM
Si voy a utilizar este codigo:
if StrComp(Cadena, Rs!Nombre, vbTextCompare) = 1 then goto Existe

Entonces ya no necesito poner
Select DISTINCT Nombre From CLientes

Sino direfctamente
Select * From Clientes
#119
Otra solucion esta en utilziar: If IsFormLoaded = True
Private Sub Combo1_Click()
If IsFormLoaded = True Then
    If Combo1.Text = 1 Then Text1.SetFocus
    If Combo1.Text = 2 Then Text2.SetFocus
    If Combo1.Text = 3 Then Text3.SetFocus
End If
End Sub
#120
El siguiente codigo me da el ERROR 5 LLAMADA A PROCEDIMEINTOS O ARGUMENTOS NO VALIDOS.

Private Sub Form_Load()
For i = 1 To 3
    Combo1.AddItem i
Next i
Combo1.ListIndex = 1
End Sub

Private Sub Combo1_Click()
If Combo1.Text = 1 Then Text1.SetFocus
If Combo1.Text = 2 Then Text2.SetFocus
If Combo1.Text = 3 Then Text3.SetFocus
End Sub


EL ERROR ES QUE EN EL EVENTO Private Sub Form_Load() HE ASIGNADO Combo1.ListIndex = 1 Y COMO EN EL EVENTO Private Sub Combo1_Click() SE vaya AL FOCO DE LOS TEXT''S. COMO ES LOGICO NO PUEDE IR AL FOCO PORQUE AUN EL FOMULARIO NO ESTA CARGADO. PARA ELLO TENDRIA QUE ESTAR EN EL EVENTO Form_Activate().

COMO PUEDO SABER QUE EL FORMULARIO YA ESTE CARGADO. ASI ASIGNARIA QUE SOLO CUANDO EL FORM YA ESTE CALCULADO CORRA LOAS PROCEDIMEINTOS COMO AQUI...

Private Sub Combo1_Click()
IF ME.ACTIVATE = TRUE THEN
   If Combo1.Text = 1 Then Text1.SetFocus
   If Combo1.Text = 2 Then Text2.SetFocus
   If Combo1.Text = 3 Then Text3.SetFocus
END IF
End Sub



BUENO DE QUE MANERA SE PUEDE HACER DE QUE  IF ME.ACTIVATE = TRUE THEN SE HAGUE REALIDAD. ES DECIR QUE CODIGO SE PONE PARA SABER QUE EL FORMULARIO YA ESTE CARGADO..