Detener Procesos desde VB.Net

Hola Amigos, hoy les muestro como Detener Procesos del Sistema desde VB.Net, hay que tener cuidado con esta accion y conocer bien los procesos que bamos a detener ya que nuestro sistema podria dañarse, claro al reinicio se bolbera a iniciar el proceso pero podriams perder el trabajo actual.

bueno comencemos, para este ejemplo solo e Agregado un Textbox y un Button, dentro del Button e puesto el sigiente codigo:

Dim proceso As System.Diagnostics.Process()
proceso = System.Diagnostics.Process.GetProcessesByName(TextBox1.Text)

For Each opro As System.Diagnostics.Process In proceso
‘antes de iniciar el proceso obtengo la fecha en que inicie el
‘proceso para detener todos los procesos que la Aplicacion inicio
‘mi código durante el proceso
If opro.StartTime >= Date.Now.ToString Then
opro.Kill()
End If
Next

Done System.Diagnostics.Process.GetProcessesByName(TextBox1.Text), TextBox1 es el nombre de proceso que deceamos Detener.

este ejemplo lo puedes descargar desde Aqui, es un proyecto de VB.Net 2013.

Agregar Color a Filas en DataGridView VB.Net

Hola amigo, hoy les mostrare como colorear el fondo de una fila o row de un datagridview dependiendo de la condicion que le asignemos, esto se hace con l Ayuda de Recorrer Columnas de DataGridView, en el boton de «Colorear Filas» ingresamos el sigiente Codigo:

For Each row As DataGridViewRow In Me.DataGridView1.Rows

If row.Cells(«Status»).Value = «1» Then
row.DefaultCellStyle.BackColor = Color.ForestGreen
ElseIf row.Cells(«Status»).Value = «2» Then
row.DefaultCellStyle.BackColor = Color.BlueViolet
ElseIf row.Cells(«Status»).Value = «3» Then
row.DefaultCellStyle.BackColor = Color.OrangeRed
ElseIf row.Cells(«Status»).Value = «4» Then
row.DefaultCellStyle.BackColor = Color.Red
ElseIf row.Cells(«Status»).Value = «5» Then
row.DefaultCellStyle.BackColor = Color.Yellow
End If

Next

como vemos recorrera toda la columna de titulo Status y dependieno de el valor retornado pintara un color u otro la fila.

asi de simple, cuando necesite este codigo me quebre mucho la cabeza en blogs y nada y nunca pense que fuera tan sumple, bueno es todo, saludos.

el ejemplo lo puedes descargar desde Aqui, es un proyecto en VB.Net 2013.

Respaldar Base de Datos SQL Server con VB.Net

Hola amigos, hoy les muestro como Respaldar nuestra Base de Datos de SQL Server desde VB.Net, Primero hay que Importar la siguiente Librebria: Imports System.Data.SqlClient

el diseño de mi formulario es el siguiente:

Sin título

podemos ver que es n formulario muy sencillo, bueno pasemos al codigo.

en el botton con *** e insertado el siguiente codigo:

Dim dlgDestino As New FolderBrowserDialog
With dlgDestino
.Description = «Seleccione el Directorio de Destino»
If .ShowDialog = Windows.Forms.DialogResult.OK Then
Dim strDestino As String = .SelectedPath.ToString
If Not strDestino.EndsWith(«\») Then
strDestino = strDestino & «\»
End If
Me.TextBox1.Text = strDestino
End If
End With

podemor ver que declaramos nuetro folderbrowser para ubicar nuestro respaldo tambien agregamos la fincion .EndsWith para agregar al final de la cadena «\», y finalmente asignamos la uta completa  el textbox1.

en el boton Respaldar Base de Datos agregamos el siguiente codigo:

Dim DBName As String = «InventariosAMC»
Try
Dim strNombre_Respaldo As String = DBName & «-» & Date.Now.ToString(«ddMMyyyy») & «-» & Date.Now.ToString(«HHmmss») & «.bak»
cnx.Open()
Dim coSQL As New SqlCommand(«BACKUP DATABASE[» & DBName & «] To Disk = ‘» & TextBox1.Text & strNombre_Respaldo & «‘», cnx)
coSQL.ExecuteNonQuery()
MsgBox(«La Base de Datos: » & strNombre_Respaldo & » Se ha Respaldado Existosamente!», MsgBoxStyle.Information, «Respaldo de DB»)
Me.Close()
Catch ex As Exception
MsgBox(ex.Message.ToString)
Finally
cnx.Close()
End Try

primero, Dim DBName As String = «InventariosAMC» porque es el nombre de mi base de datos, aqui podemos poner una variable para asignarle un valor diferente y respaldar diferentes bases de datos.

despues: Dim strNombre_Respaldo As String = DBName & «-» & Date.Now.ToString(«ddMMyyyy») & «-» & Date.Now.ToString(«HHmmss») & «.bak», donde asignamos al nombre de la base de datos el diamesaño-horaminutossegundos-.back para identificar mejor el respaldo para su posterior restauracion.

Finalmente la instruccion que hara la maguia:Dim coSQL As New SqlCommand(«BACKUP DATABASE[» & DBName & «] To Disk = ‘» & TextBox1.Text & strNombre_Respaldo & «‘», cnx), le estamos diciendo que haga el BackUp a DBName en mi caso InventariosAMC, y le decimos que lo guarde en : textbox1.te qu contiene la direccion de la carpeta seleccionada y & strnombre respaldo que es el nombre completo del archivo a crear, por ejemplo seria: C:\BackUps\InventariosAMC-30092014-012232.back.

espero les sirva como ami, saludos.

este ejemplo lo puedes descargar desde Aqui, es un proyecto en VB.Net 2013.

Eliminar Ultima fila de un DataGridView VB.Net

Hola amigos, hoy les muestro como eliminar la ultima fila de un datagridview, no les ha pasado que trabajan con u datagridview y por algun motivo les muestra  una fila vacia al final y lo cual podria mostrar un error, mas en esecifico si rrecorren la columna para tomar los valores y hacer una operacion, bueno pues con este codigo se elimina la ultima fila y no a lo loco, solo se elimina si esta vacia claro.

bueno este es el codigo:

For X = 0 To Me.DataGridView.Rows.Count – 1
If Me.DataGridView.Rows(X).Cells(1).Value = Nothing Then
Me.DataGridView.Rows.Remove(Me.DataGridView.Rows(X))
End If
Next

como pueden ver comenzamos el ciclo desde 0 hasta total de columnas -1, luego si el valor de la posicon de la fila(x) es Nothing entonces se elimina la fila x que es la que nos interesa y que es xsegun nuestro ciclo.

saludos.

Recorrer Columna de DataGridView VB.Net

Hola amigos, hoy les mostrare como recorrer una columna de DataGridView e ir tomando el valor de cada una en una variable, para esto Utilizaremos For Each.

primero debemos tener lleno el datagrid con una consulta o algun dato al que queremos tomar los valores, esto es util porque se puede condicionar codigo para cada resultado de el ciclo.

una ves lleno el Grid escribimos el siguiente codigo en el boton donde queremos inicial el proceso

‘declaraos las variables que queremos que contengan los valores de la columna
Dim Codigo As String
For Each row As DataGridViewRow In Me.DataGridView1.Rows
‘obtenemos el valor de la columna en la variable declarada
Codigo = row.Cells(0).Value ‘donde (0) es la columna a recorrer
MsgBox(Codigo) ‘se mostrara un mensaje con el valor de cada una de las columnas

Next

observemos Codigo = row.Cells(0).Value, donde (0) es el numero de la columna a recorrer, si quieren tambien pueden poner: («NombreColumna») y funcionara igual, despues bemos MsgBox(Codigo), esto es solo para visualizar los resultados pero todo el codigo entre el For Each y Next se uede reemplazar y condicionar segun nos interese.

el codigo lo pueden descargar desde Aqui, es un proyecto en VB.Net 2013.

Consulta Select Max() VB.net

Hola Amigos, hoy les mostrare como Seleccionar el Valor Maximo de un campo y Tabla especifica, este mismo procedimiento aplica para Sumar o cualquier ora operacion incluso para retornar un valor en concreto utilizando la clausula where.

bueno comencemos, primero debemos Importar la Libreria Imports System.Data.SqlCient ya que estoy trabajando con sql server, luego creamos la siguiente funcion ya sea en el propio formulario o en un modulo:

Primero hay que declarar a nivel Formulario o en un modulo la variable cnx que conendra la cadena de conexion t la variable Retorno la cual sera tipo string que contendra el valor retornado.

Public Sub GetElement(ByVal Sql As String)
Dim cmd As New SqlCommand
cmd.CommandText = Sql
cmd.CommandType = CommandType.Text
cmd.Connection = cnx
cnx.Open()
Try
Retorno = cmd.ExecuteScalar()
Catch ex As Exception
‘MsgBox(ex.Message)
Finally
cnx.Close()
End Try
End Sub

la Forma de llamarla es: GetElement(SQL), donde sql es la sentencia a buscar, ejemplo: «Select Max(Cantidad) From Materiales Where Codigo = ‘123456’», el valor se retornara en la Varable Retorno.

el ejemplo lo pueden descargar Aqui, es un proyecto de VB.Net 2013.

Enviar EMail con Adjuntos desde VB.Net (Gmail)

Hola Amigos, hoy les muestro como enviar un email desde nuestra aplicacion en VB.Net, utilizando el Famoso Gmail como Emisor.

este es el aspecto de mi formulario:

Sin título

como pueden ver la Interfac es muy sencilla, se pueden agregar datos adjuntos en el email.

comencemos con el codigo, en el boton para buscar el archivo (el que tiene los ***) se agrega el siguiente codigo:

Dim openFD As New OpenFileDialog()
With openFD
.Title = «Seleccionar archivos a Adjuntar»
.Multiselect = False
.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop
If .ShowDialog = Windows.Forms.DialogResult.OK Then
TextBox6.Text = .FileName
End If
End With

para seleccionar el archivo a adjuntar y agregar la ruta al TextBox6 que es donde se tomara para enviar el emai,

luego en el boton de Enviar ponemos el Siguiente Codigo:

‘se envia email ade advertencia
Dim _Message As New System.Net.Mail.MailMessage()
Dim _SMTP As New System.Net.Mail.SmtpClient

Dim att As New System.Net.Mail.Attachment(TextBox6.Text) ‘, System.Net.Mime.TransferEncoding.Base64

‘CONFIGURACIÓN DEL STMP
_SMTP.Credentials = New System.Net.NetworkCredential(TextBox1.Text, TextBox2.Text)
_SMTP.Host = «smtp.gmail.com»
_SMTP.Port = 587
_SMTP.EnableSsl = True

‘ CONFIGURACION DEL MENSAJE
_Message.[To].Add(TextBox3.Text)
_Message.From = New System.Net.Mail.MailAddress(TextBox1.Text, «», System.Text.Encoding.UTF8) ‘Quien lo envía
_Message.Subject = TextBox4.Text
_Message.SubjectEncoding = System.Text.Encoding.UTF8 ‘Codificacion
_Message.Body = TextBox5.Text
_Message.BodyEncoding = System.Text.Encoding.UTF8
_Message.Priority = System.Net.Mail.MailPriority.Normal
_Message.Attachments.Add(att)
_Message.IsBodyHtml = False

‘ENVIO
Try
_SMTP.Send(_Message)
MsgBox(«Se ha Enviado el Email», MsgBoxStyle.Information, «EMail Enviado»)
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try

como pueden ver estamos utilizando el smtp de gmail.

si el proceso ha terminado bien se mostrara un mensaje indicandonoslo de igual manera si algo sale mal.

el ejemplo lo pueden descargar desde Aqui, es un proyecto en VB.Net 2013.

Convertir Numeros a Letras VB.Net

Hola Amigos, hoy les mostrare como convertir numeo a letras en vb.net, esto es muy util cuando trabajamos en aplicaciones que tienen algo que ver con el ambito contable.

dependiedo de donde ballamos a insertar la funcion, en el formulario o en mi caso en un Modulo .Bas, debemos Imortar la siguiente Referencias: Imports System.Runtime.CompilerServices.

la funcion es la siguiente:

<Extension()> Public Function GetMyNumberToWords(ByVal value As String) As String
Dim str As String = String.Empty

Select Case Convert.ToDouble(value)
Case 0 : str = «CERO»
Case 1 : str = «UN»
Case 2 : str = «DOS»
Case 3 : str = «TRES»
Case 4 : str = «CUATRO»
Case 5 : str = «CINCO»
Case 6 : str = «SEIS»
Case 7 : str = «SIETE»
Case 8 : str = «OCHO»
Case 9 : str = «NUEVE»
Case 10 : str = «DIEZ»
Case 11 : str = «ONCE»
Case 12 : str = «DOCE»
Case 13 : str = «TRECE»
Case 14 : str = «CATORCE»
Case 15 : str = «QUINCE»
Case Is < 20 : str = «DIECI» & GetMyNumberToWords(value – 10)
Case 20 : str = «VEINTE»
Case Is < 30 : str = «VEINTI» & GetMyNumberToWords(value – 20)
Case 30 : str = «TREINTA»
Case 40 : str = «CUARENTA»
Case 50 : str = «CINCUENTA»
Case 60 : str = «SESENTA»
Case 70 : str = «SETENTA»
Case 80 : str = «OCHENTA»
Case 90 : str = «NOVENTA»
Case Is < 100 : str = GetMyNumberToWords(Int(value \ 10) * 10) & » Y » & GetMyNumberToWords(value Mod 10)
Case 100 : str = «CIEN»
Case Is < 200 : str = «CIENTO » & GetMyNumberToWords(value – 100)
Case 200, 300, 400, 600, 800 : str = GetMyNumberToWords(Int(value \ 100)) & «CIENTOS»
Case 500 : str = «QUINIENTOS»
Case 700 : str = «SETECIENTOS»
Case 900 : str = «NOVECIENTOS»
Case Is < 1000 : str = GetMyNumberToWords(Int(value \ 100) * 100) & » » & GetMyNumberToWords(value Mod 100)
Case 1000 : str = «MIL»
Case Is < 2000 : str = «MIL » & GetMyNumberToWords(value Mod 1000)
Case Is < 1000000 : str = GetMyNumberToWords(Int(value \ 1000)) & » MIL»
If value Mod 1000 Then str = str & » » & GetMyNumberToWords(value Mod 1000)
Case 1000000 : str = «UN MILLON»
Case Is < 2000000 : str = «UN MILLON » & GetMyNumberToWords(value Mod 1000000)
Case Is < 1000000000000.0# : str = GetMyNumberToWords(Int(value / 1000000)) & » MILLONES »
If (value – Int(value / 1000000) * 1000000) Then str = str & » » & GetMyNumberToWords(value – Int(value / 1000000) * 1000000)
Case 1000000000000.0# : str = «UN BILLON»
Case Is < 2000000000000.0# : str = «UN BILLON » & GetMyNumberToWords(value – Int(value / 1000000000000.0#) * 1000000000000.0#)
Case Else : str = str(Int(value / 1000000000000.0#)) & » BILLONES»
If (value – Int(value / 1000000000000.0#) * 1000000000000.0#) Then str = str & » » & GetMyNumberToWords(value – Int(value / 1000000000000.0#) * 1000000000000.0#)
End Select

Return str
End Function

esta es la funcion GetMyNumberToWords, declarada al Pleno estilo .Net, la funcion debe ser llamada de la siguiente manera:

en mi caso desde la funcion Text_Changed de un TextBox:

‘La Funcion es llamada GetMyNumberToWords es llamada de la siguiente manera desde el evento Change de un txtbox
Dim largo = Len(CStr(Format(CDbl(TextBox1.Text), «#,###.00»)))
Dim decimales = Mid(CStr(Format(CDbl(TextBox1.Text), «#,###.00»)), largo – 2)
Label2.Text = «SON » & GetMyNumberToWords(TextBox1.Text – decimales) & »  » & Mid(decimales, Len(decimales) – 1) & «/100 M. N.» & »  Pesos.»

Podremos cambiar el aspecto de la cadena de retorno, como en mi caso agrege, «/100 M.N.» y «Pesos» porque es la Moneda Nacional, pero ustedes pueden poner cualquiera.

el ejemplo lo pueden descargar desde Aqui, es un proyecto de VB.Net 2013.

Importar Archivo Excel A DataGridView VB.Net

Hola Amigos, Hoy les muestro como Importar un Archvo de Excel a Un DataGridView, esto es mu mportante a la Hora de Guardar muchos Registros de manera Simultanea en nuestra Base de Datos.

primero, hay que crear un Button en Nuestro formulario el cual se encargara de seleccionar nuestro aechivo de excel a importar, este es su codigo:

Dim openFD As New OpenFileDialog()
With openFD
.Title = «Seleccionar archivos»
.Filter = «Archivos Excel(*.xls;*.xlsx)|*.xls;*xlsx|Todos los archivos(*.*)|*.*»
.Multiselect = False
.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.Desktop
If .ShowDialog = Windows.Forms.DialogResult.OK Then
ImportExcellToDataGridView(.FileName, DataGridView)
End If
End With

como ven Hemos Declarado nuestro openfiledialog y hemos aplcado un filtro, este openfiledialog se encargara de regresar la ruta del archivo a importar a la funcion ImportExcellToDataGridView, y como ven tambien se proporcionan los Parametros que esta reduiere, (.FileName es el Patch que regresa el OpenFileDialog y DataGridView es el Control en el que se Inportaran los Datos.

es importante ue en el formulario o en mi caso en el Modulo .Bas imoprtar la siguiente Referencia:

Imports System.Data.OleDb, si no lo hacemos nos marcara error.

Public Function ImportExcellToDataGridView(ByRef path As String, ByVal Datagrid As DataGridView)
Try
Dim stConexion As String = («Provider=Microsoft.ACE.OLEDB.12.0;» & («Data Source=» & (path & «;Extended Properties=»»Excel 12.0;Xml;HDR=YES;IMEX=2″»;»)))
Dim cnConex As New OleDbConnection(stConexion)
Dim Cmd As New OleDbCommand(«Select * From [Hoja1$]»)
Dim Ds As New DataSet
Dim Da As New OleDbDataAdapter
Dim Dt As New DataTable
cnConex.Open()
Cmd.Connection = cnConex
Da.SelectCommand = Cmd
Da.Fill(Ds)
Dt = Ds.Tables(0)
Datagrid.Columns.Clear()
Datagrid.DataSource = Dt
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, «Error»)
End Try
Return True
End Function

como se muestra en el ejemplo, en mi caso La Hoja desde donde iportara los datos se llama Hoja1, deben especificar el nombre porque sino les marcara error, este codigo funciona para Excell 2003, 2007, y 2010 no lo he probado con 2013 pero creo que funciona.

el ejemplo lo pueden descargar desde Aqui, es un proyecto en VB.Net 2013.