WALYNET
viernes, 17 de febrero de 2012
sábado, 11 de febrero de 2012
video Copiar de datagrid a datagrid
datagrid 1
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
For i As Integer = 0 To 2
DataGridView1.Rows.Add(i, "21/11/2011", Month(Now), "Disco duro", "Dispositivos", 2 + i, Format((1 + i) * 120000, "N0"))
Next
For i As Integer = 0 To 2
DataGridView1.Rows.Add(i, "18/10/2011", "10", "Memorias", "Dispositivos", 2 + i, Format((1 + i) * 60000, "N0"))
Next
For i As Integer = 0 To 2
DataGridView1.Rows.Add(i, "10/11/2011", "11", "Procesador", "Dispositivos", 2 + i, Format((1 + i) * 140000, "N0"))
Next
'centra la cantidad
DataGridView1.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomCenter
'justifica el valor a la izquierda
DataGridView1.Columns(6).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
'Total items
Ttitems.Text = DataGridView1.RowCount - 1
'Suma la cantidad & valor
Dim Scantidad, Svalor As Integer
For i As Integer = 0 To DataGridView1.RowCount - 1
Scantidad += DataGridView1.Rows(i).Cells(5).Value
Svalor += DataGridView1.Rows(i).Cells(6).Value
Next
Ttcantidad.Text = Format(Scantidad, "N0") 'Muestro la suma en el label ttcantidad con formato numerico
Ttotal.Text = Format(Svalor, "N0") 'Muestro la suma en el label ttotal con formato numerico
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Me.Close()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form2.Show()
End Sub
End Class
datagrid 2
Public Class Form2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
DataGridView1.Rows.Clear() 'limpia el datagri
Dim CD, FC, MS, PR, CT, CTD, VL As String 'Variables q van almacenar cada unos de los campos a pasar del formulario1
For fila As Integer = 0 To Form1.DataGridView1.RowCount - 1 'cuenta el numero de fila datagri delformulario 1
If Form1.DataGridView1.Rows(fila).Cells(2).Value = ComboBox1.Text Then 'compara si fila de la columna 2 es igual al mes pasa la informacion
CD = Form1.DataGridView1.Rows(fila).Cells(0).Value 'valor fila columna cero
FC = Form1.DataGridView1.Rows(fila).Cells(1).Value 'valor fila columna uno
MS = Form1.DataGridView1.Rows(fila).Cells(2).Value 'valor fila columna dos
PR = Form1.DataGridView1.Rows(fila).Cells(3).Value 'valor fila columna tres
CT = Form1.DataGridView1.Rows(fila).Cells(4).Value 'valor fila columna cuatro
CTD = Form1.DataGridView1.Rows(fila).Cells(5).Value 'valor fila columna cinco
VL = Form1.DataGridView1.Rows(fila).Cells(6).Value 'valor fila columna seis
DataGridView1.Rows.Add(CD, FC, MS, PR, CT, CTD, VL) 'asqui carga la informacion al datagrid del formulario 2
End If
Next
totales() 'proceso que calcula los totales de las cantidades y los valores
Catch ex As Exception
End Try
End Sub
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'este bucle nos carga los meses el combobox1
For i As Integer = 0 To 12
ComboBox1.Items.Add(i)
Next
'lleno el combobox2 con estas fechas para luego utilizarlas
ComboBox2.Items.Add("21/11/2011")
ComboBox2.Items.Add("10/11/2011")
ComboBox2.Items.Add("18/10/2011")
'lleno el combobox3 con los nombres de los tres productos para luego hacer busqueda
ComboBox3.Items.Add("Disco duro")
ComboBox3.Items.Add("Memorias")
ComboBox3.Items.Add("Procesador")
End Sub
Private Sub ComboBox3_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox3.SelectedIndexChanged
End Sub
Private Sub ComboBox3_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox3.TextChanged
DataGridView1.Rows.Clear() 'limpia el datagri
DataGridView1.Rows(0).Cells(3).Value = ComboBox3.Text 'hacer clic en combobox me escribe su valor el datagrid en la posicio cero de columna 3
End Sub
Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
End Sub
Sub totales()
'Suma la cantidad & valor
Dim Scantidad, Svalor As Integer
For i As Integer = 0 To DataGridView1.RowCount - 1 'cuenta el numero de filas q tiene el datagrid del formulario 2
Scantidad += DataGridView1.Rows(i).Cells(5).Value 'suma las cantidades y las va acomulando en la variable scantidad
Svalor += DataGridView1.Rows(i).Cells(6).Value 'suma las cantidades y las va acomulando en la variable svalor
Next
Ttcantidad.Text = Format(Scantidad, "N0") 'Muestro la suma en el label ttcantidad con formato numerico
Ttotal.Text = Format(Svalor, "N0") 'Muestro la suma en el label ttotal con formato numerico
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Try
DataGridView1.Rows.Clear() 'limpia el datagri
Dim CD, FC, MS, PR, CT, CTD, VL As String 'Variables q van almacenar cada unos de los campos a pasar del formulario1
For fila As Integer = 0 To Form1.DataGridView1.RowCount - 1 'cuenta el numero de fila datagri delformulario 1
If Form1.DataGridView1.Rows(fila).Cells(1).Value = ComboBox2.Text Then 'compara si fila de la columna 1 es igual al mes pasa la informacion
CD = Form1.DataGridView1.Rows(fila).Cells(0).Value 'valor fila columna cero
FC = Form1.DataGridView1.Rows(fila).Cells(1).Value 'valor fila columna uno
MS = Form1.DataGridView1.Rows(fila).Cells(2).Value 'valor fila columna dos
PR = Form1.DataGridView1.Rows(fila).Cells(3).Value 'valor fila columna tres
CT = Form1.DataGridView1.Rows(fila).Cells(4).Value 'valor fila columna cuatro
CTD = Form1.DataGridView1.Rows(fila).Cells(5).Value 'valor fila columna cinco
VL = Form1.DataGridView1.Rows(fila).Cells(6).Value 'valor fila columna seis
DataGridView1.Rows.Add(CD, FC, MS, PR, CT, CTD, VL) 'asqui carga la informacion al datagrid del formulario 2
End If
Next
totales() 'proceso que calcula los totales de las cantidades y los valores
Catch ex As Exception
End Try
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Try
DataGridView1.Rows.Clear() 'limpia el datagri
Dim fila, CD, FC, MS, PR, CT, CTD, VL As String 'Variables q van almacenar cada unos de los campos a pasar del formulario1
fila = Form1.DataGridView1.CurrentRow.Index 'a la variable fila la asigno el index o fila seleccionada del datagrid del formulario 1
CD = Form1.DataGridView1.Rows(fila).Cells(0).Value 'valor fila columna cero
FC = Form1.DataGridView1.Rows(fila).Cells(1).Value 'valor fila columna uno
MS = Form1.DataGridView1.Rows(fila).Cells(2).Value 'valor fila columna dos
PR = Form1.DataGridView1.Rows(fila).Cells(3).Value 'valor fila columna tres
CT = Form1.DataGridView1.Rows(fila).Cells(4).Value 'valor fila columna cuatro
CTD = Form1.DataGridView1.Rows(fila).Cells(5).Value 'valor fila columna cinco
VL = Form1.DataGridView1.Rows(fila).Cells(6).Value 'valor fila columna seis
DataGridView1.Rows.Add(CD, FC, MS, PR, CT, CTD, VL) 'asqui carga la informacion al datagrid del formulario 2
totales() 'proceso que calcula los totales de las cantidades y los valores
Catch ex As Exception
End Try
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Try
Dim cantidad, valor As Integer 'variables q van a contener la sumatoria de las cantidades y el valor
For fila As Integer = 0 To Form1.DataGridView1.RowCount - 1 'cuenta el numero de fila datagri delformulario 1
If Form1.DataGridView1.Rows(fila).Cells(3).Value = ComboBox3.Text Then 'compara si fila de la columna 3 es igual al mes pasa la informacion
cantidad += Form1.DataGridView1.Rows(fila).Cells(5).Value 'le asigno el valor fila de la columna 5 q es la cantidad a la variable cantidad
valor += Form1.DataGridView1.Rows(fila).Cells(6).Value 'le asigno el valor fila de la columna 6 q es el valor a la variable valor
End If
Next
DataGridView1.Rows(0).Cells(5).Value = Format(cantidad, "N0") 'pongo en el datagri en fila cero de la columna 5 del formulario 2 los valores q cotiene la variable cantidad
DataGridView1.Rows(0).Cells(6).Value = Format(valor, "N0") 'pongo en el datagri en fila cero de la columna 6 formulario 2 los valores q cotiene la variable valor
totales() 'proceso que calcula los totales de las cantidades y los valores
Catch ex As Exception
End Try
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Try
DataGridView1.Rows.Clear() 'limpia el datagri
DataGridView1.Rows.Add(1, "", "", "Disco duro") 'agrego los productos al datagrid para el ejemplo
DataGridView1.Rows.Add(2, "", "", "Memorias")
DataGridView1.Rows.Add(3, "", "", "Procesador")
Dim cantidad, valor As Integer 'variables q van a contener la sumatoria de las cantidades y el valor
Dim productof1, productof2 As String 'variables q van a contener la sumatoria de las cantidades y el valor
For i As Integer = 0 To DataGridView1.RowCount - 2 'cuenta el numero filas del datagerid del formulario2
productof2 = DataGridView1.Rows(i).Cells(3).Value 'variable producto del datagrid del formulario 2
cantidad = 0 'incio las variables en cero cada vez q pasa un ciclo para que no me acomule el valor del producto anterior
valor = 0
For fila As Integer = 0 To Form1.DataGridView1.RowCount - 1 'cuenta el numero de fila datagri delformulario 1
productof1 = Form1.DataGridView1.Rows(fila).Cells(3).Value 'variable producto del datagrid del formulario 1
If productof1 = productof2 Then 'compara si fila de la columna 3 es igual al mes pasa la informacion
cantidad += Form1.DataGridView1.Rows(fila).Cells(5).Value 'le asigno el valor fila de la columna 5 q es la cantidad a la variable cantidad
valor += Form1.DataGridView1.Rows(fila).Cells(6).Value 'le asigno el valor fila de la columna 6
DataGridView1.Rows(i).Cells(5).Value = Format(cantidad, "N0") 'asigno las cantidades y los valores a los producto del datagrid 1 del formulario 1
DataGridView1.Rows(i).Cells(6).Value = Format(valor, "N0")
End If
Next
Next
totales() 'proceso que calcula los totales de las cantidades y los valores
Catch ex As Exception
End Try
End Sub
End Class
viernes, 20 de enero de 2012
Selección y eliminación de todos los elementos de un ListBox:
Insertar un ListBox y dos Botón en un nuevo proyecto. Poner la propiedad MultiSelect del ListBox
a "1 - Simple" y escriba el siguiente código:
Private Declare Function SendMessageLong Lib "user32" Alias
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long,
ByVal wParam As Long, ByVal lParam As Long) As Long
Private Sub Form_Load()
List1.AddItem "Texto 1"
List1.AddItem "Texto 2"
List1.AddItem "Texto 3"
List1.AddItem "Texto 4"
List1.AddItem "Texto 5"
List1.AddItem "Texto 6"
List1.AddItem "Texto 7"
End Sub
Private Sub Command1_Click()
'Seleccion de todo el contenido
Dim Resp As Long
Resp = SendMessageLong(List1.hwnd, &H185&, True, -1)
End Sub
Private Sub Command2_Click()
'Eliminacion de todos los elementos seleccionados
Dim Resp As Long
Resp = SendMessageLong(List1.hwnd, &H185&, False, -1)
End Sub
a "1 - Simple" y escriba el siguiente código:
Private Declare Function SendMessageLong Lib "user32" Alias
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long,
ByVal wParam As Long, ByVal lParam As Long) As Long
Private Sub Form_Load()
List1.AddItem "Texto 1"
List1.AddItem "Texto 2"
List1.AddItem "Texto 3"
List1.AddItem "Texto 4"
List1.AddItem "Texto 5"
List1.AddItem "Texto 6"
List1.AddItem "Texto 7"
End Sub
Private Sub Command1_Click()
'Seleccion de todo el contenido
Dim Resp As Long
Resp = SendMessageLong(List1.hwnd, &H185&, True, -1)
End Sub
Private Sub Command2_Click()
'Eliminacion de todos los elementos seleccionados
Dim Resp As Long
Resp = SendMessageLong(List1.hwnd, &H185&, False, -1)
End Sub
Como desplegar la lista de un ComboBox automáticamente:
Insertar un ComboBox y un Botón en un nuevo proyecto y escribir el siguiente código:
Private Declare Function SendMessageLong Lib "user32" Alias
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long,
ByVal wParam As Long, ByVal lParam As Long) As Long
Private Sub Form_Load()
Combo1.Clear
Combo1.AddItem "Objeto 1"
Combo1.AddItem "Objeto 2"
Combo1.AddItem "Objeto 3"
Combo1.AddItem "Objeto 4"
Combo1.AddItem "Objeto 5"
Combo1.AddItem "Objeto 6"
Combo1.AddItem "Objeto 7"
Combo1.Text = "Objeto 1"
End Sub
Private Sub Command1_Click()
'ComboBox desplegado
Dim Resp As Long
Resp = SendMessageLong(Combo1.hwnd, &H14F, True, 0)
End Sub
Private Declare Function SendMessageLong Lib "user32" Alias
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long,
ByVal wParam As Long, ByVal lParam As Long) As Long
Private Sub Form_Load()
Combo1.Clear
Combo1.AddItem "Objeto 1"
Combo1.AddItem "Objeto 2"
Combo1.AddItem "Objeto 3"
Combo1.AddItem "Objeto 4"
Combo1.AddItem "Objeto 5"
Combo1.AddItem "Objeto 6"
Combo1.AddItem "Objeto 7"
Combo1.Text = "Objeto 1"
End Sub
Private Sub Command1_Click()
'ComboBox desplegado
Dim Resp As Long
Resp = SendMessageLong(Combo1.hwnd, &H14F, True, 0)
End Sub
Nota: Resp = SendMessageLong(Combo1.hwnd, &H14F, False, 0) oculta la lista desplegada
de un ComboBox, aunque esto sucede también cuando cambiamos el focus a otro control o al formulario.
de un ComboBox, aunque esto sucede también cuando cambiamos el focus a otro control o al formulario.
Salvar el contenido de un TextBox a un fichero en disco:
Añada el siguiente código:
Private Sub Command1_Click()
Dim canalLibre As Integer
'Obtenemos un canal libre que nos dará
'el sistema oparativo para poder operar
canalLibre = FreeFile
'Abrimos el fichero en el canal dado
Open "C:\fichero.txt" For Output As #canalLibre
'Escribimos el contenido del TextBox al fichero
Print #canalLibre, Text1
Close #canalLibre
End Sub
Dim canalLibre As Integer
'Obtenemos un canal libre que nos dará
'el sistema oparativo para poder operar
canalLibre = FreeFile
'Abrimos el fichero en el canal dado
Open "C:\fichero.txt" For Output As #canalLibre
'Escribimos el contenido del TextBox al fichero
Print #canalLibre, Text1
Close #canalLibre
End Sub
Nuevo
Para abrir:
Código:
Dim foo As Integer
foo = FreeFile
Open "C:\Archivo.txt" For Input As #foo
Text1.Text = Input(LOF(foo), #foo)
Close #foo
Dim foo As Integer
foo = FreeFile
Open "C:\Archivo.txt" For Input As #foo
Text1.Text = Input(LOF(foo), #foo)
Close #foo
Para guardar:
Código:
Dim foo As Integer
foo = FreeFile
Open "C:\Archivo.txt" For Output As #foo
Print #foo, Text1.Text
Close #foo
Dim foo As Integer
foo = FreeFile
Open "C:\Archivo.txt" For Output As #foo
Print #foo, Text1.Text
Close #foo
dialogos:
Ese es para Abrir
Código:
Dim strOpen As String
CommonDialog1.ShowOpen
strOpen = CommonDialog1.FileName
Text1.LoadFile strOpen
Text1.LoadFile strClose
Dim strOpen As String
CommonDialog1.ShowOpen
strOpen = CommonDialog1.FileName
Text1.LoadFile strOpen
Text1.LoadFile strClose
Ese para guardar
Código:
Dim strNewFile As String
CommonDialog1.ShowSave
strNewFile = CommonDialog1.FileName
Text1.SaveFile strNewFile
Dim strNewFile As String
CommonDialog1.ShowSave
strNewFile = CommonDialog1.FileName
Text1.SaveFile strNewFile
Capturar la pantalla entera o la ventana activa:
Añadir dos botones y escribir el siguiente código:
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte,
ByVal bScan As Byte, ByVal dwFlags As Long,
ByVal dwExtraInfo As Long)
Private Sub Command1_Click()
'Captura la ventana activa
keybd_event 44, 0, 0&, 0&
End Sub
Private Sub Command2_Click()
'Captura toda la pantalla
keybd_event 44, 1, 0&, 0&
End Sub
ByVal bScan As Byte, ByVal dwFlags As Long,
ByVal dwExtraInfo As Long)
Private Sub Command1_Click()
'Captura la ventana activa
keybd_event 44, 0, 0&, 0&
End Sub
Private Sub Command2_Click()
'Captura toda la pantalla
keybd_event 44, 1, 0&, 0&
End Sub
Determinar si un fichero existe o no:
Escriba el siguiente código: (una de tanta maneras aparte de Dir$())
Private Sub Form_Load()
On Error GoTo Fallo
x = GetAttr("C:\Autoexec.bat")
MsgBox "El fichero existe."
Exit Sub
Fallo:
MsgBox "El fichero no existe."
End Sub
Private Sub Form_Load()
On Error GoTo Fallo
x = GetAttr("C:\Autoexec.bat")
MsgBox "El fichero existe."
Exit Sub
Fallo:
MsgBox "El fichero no existe."
End Sub
Como obtener el directorio desde donde estamos ejecutando nuestro programa:
Escribir el siguiente código:
Private Sub Form_Load()
Dim Directorio as String
ChDir App.Path
ChDrive App.Path
Directorio = App.Path
If Len(Directorio) > 3 Then
Directorio = Directorio & "\"
End If
End Sub
Private Sub Form_Load()
Dim Directorio as String
ChDir App.Path
ChDrive App.Path
Directorio = App.Path
If Len(Directorio) > 3 Then
Directorio = Directorio & "\"
End If
End Sub
Calcular la etiqueta o label de un disco duro:
Hallar la etiqueta o label del mismo disco duro:
Escribir el siguiente código:
Escribir el siguiente código:
Private Declare Function GetVolumeInformation& Lib "kernel32" Alias
"GetVolumeInformationA" (ByVal lpRootPathName As String,
ByVal pVolumeNameBuffer As String, ByVal nVolumeNameSize As Long,
lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long,
lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String,
ByVal nFileSystemNameSize As Long)
Private Sub Form_Load()
Dim cad1 As String * 256
Dim cad2 As String * 256
Dim numSerie As Long
Dim longitud As Long
Dim flag As Long
unidad = "D:\"
Call GetVolumeInformation(unidad, cad1, 256, numSerie, longitud,
flag, cad2, 256)
MsgBox "Label de la unidad " & unidad & " = " & cad1
End Sub
Uso de Random:
La función Rnd o Random posee la virtud de obtener números aleatorios entre 0 y 1:
El único inconveniente a la hora de usar Rnd, es que hay que inicializarlo, en otro caso,
el resultado de la función Rnd, será siempre el mismo dentro de un determinado ordenador.
Por ejemplo, el código:
El único inconveniente a la hora de usar Rnd, es que hay que inicializarlo, en otro caso,
el resultado de la función Rnd, será siempre el mismo dentro de un determinado ordenador.
Por ejemplo, el código:
Private Sub Form_Load()
Dim Num As Double
Num = Rnd
MsgBox Num
End Sub
Nos daría como resultado siempre el mismo número.
Para solucionar este problema, debemos escribir la sentencia Randomize antes de llamar
a la función Rnd. De esta manera, la función Rnd actuará correctamente.
El código quedaría así:
Para solucionar este problema, debemos escribir la sentencia Randomize antes de llamar
a la función Rnd. De esta manera, la función Rnd actuará correctamente.
El código quedaría así:
Private Sub Form_Load()
Dim Num As Double
Randomize
Num = Rnd
MsgBox Num
End Sub
Suscribirse a:
Entradas (Atom)