Mensajes [1] - Enviado el Miércoles 23 de Enero de 2008 a las 18:30hs
hola amigos tengo una coneccion a un base de datos atravez de un modulo asi
Public con As Connection
Public rscaja As Recordset
Public rspension As Recordset
Public rseps As Recordset
Public rsempleado As Recordset
Public rsnovedad As Recordset
Public rsnovedademple As Recordset
Public rsaux As Recordset
Public aux As String
Public diastrabajados As Integer
Public rspagos As Recordset
Public rslegales As Recordset
Public auxlegales As String
Public salmin As Double
Public subtrans As Double
Sub main()
Set con = New Connection
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\nomina iyt.mdb;Persist Security Info=False"
Set rslegales = New Recordset
auxlegales = " select * from salminimo "
rslegales.Open auxlegales, con, adOpenDynamic, adLockOptimistic
salmin = rslegales!salminimo
subtrans = rslegales!subtransporte
MsgBox con.State
Frinicio.Show
End Sub
y luego estoy trabajando en un formulario el siguiente codigo
Dim c1 As Double
Dim r1 As Double
Dim y As Double
Private Sub btnliquidar_Click()
rsempleado.MoveFirst
Dim mes As Integer
Dim mes1 As Integer
Dim a?o As Integer
Dim a?o1 As Integer
Dim novedad As Double
Dim auxnovedad As Double
Dim cedula As Double
Dim cedula1 As Double
Dim salario As Double
Dim subtrans1 As Double
Dim sueldo As Double
Dim pension As Double
Dim cesantias As Double
Dim sena As Double
Dim icbf As Double
Dim arp As Double
Dim prima As Double
Dim intces As Double
Dim vac As Double
Dim cajacomp As Double
Dim apsalud As Double
Dim appension As Double
Dim neto As String
While rsempleado.EOF = False
cedula = CDbl(rsempleado!cedula_empleado)
salario = CDbl(rsempleado!sueldo_empleado)
rsnovedademple.MoveFirst
novedad = 0
auxnovedad = 0
While rsnovedademple.EOF = False
cedula1 = CDbl(rsnovedademple!novemp_cod)
mes = Month(Date)
mes1 = Month(rsnovedademple!novemple_fecha)
a?o = Year(Date)
a?o1 = Year(rsnovedademple!novemple_fecha)
If ((cedula = cedula1) And (mes = mes1) And (a?o = a?o1)) Then
auxnovedad = CDbl(rsnovedademple!novemple_valor)
novedad = novedad + auxnovedad
Else
End If
rsnovedademple.MoveNext
Wend
novedad = Round(novedad, 2)
neto = salario + novedad
apsalud = neto * 0.04
If (salmin / salario) < 4 Then
appension = neto * 0.03875
cajacomp = apsalud
Else
appension = neto * 0.04875
cajacomp = 0
End If
If (salmin / salario) <= 2 Then
subtrans1 = subtrans
Else
subtrans1 = 0
End If
sueldo = neto - apsalud - appension
eps = neto * 0.085
pension = neto * 0.12
arp = neto * 0.02533
sena = neto * 0.02
icbf = neto * 0.03
neto = neto + subtrans1
prima = neto * 0.0833
cesantias = neto * 0.0833
intces = cesantias * 0.12
vac = salario * 0.0417
rspagos.AddNew
rspagos!pagempleado_cod = cedula 'cedula del empleado
rspagos!pagempleado_fecha = Date ' fecha de liquidacion de nomina
rspagos!pagempleado_base = salario ' salario base
rspagos!pagempleado_subtrans = subtrans1 'subsidio de transporte
rspagos!pagempleado_nove = novedad ' novedades descuentos por fallas recargo nocturno y comisiones
rspagos!pagempleado_salario = sueldo 'sueldo final luego de novedades y deducciones y subsiodo de transporte
rspagos!pagempleado_eps = eps 'aporte parafiscal eps
rspagos!pagempleado_pencion = pension 'aporte parafisca pencion
rspagos!pagempleado_cesantias = cesantias 'aporte parafiscal cesantias
rspagos!pagempleado_icbf = icbf 'aporte parafiscal cesantias
rspagos!pagempleado_sena = sena 'aporte parafiscal sena
rspagos!pagempleado_arp = arp 'aporte parafisca arp
rspagos!pagempleado_prima = prima 'aporte parafiscal prima
rspagos!pagempleado_vac = vac ' aporte parafisca vacasiones
rspagos!pagempleado_intces = intces 'aporte parafiscal intereses cesantias
rspagos!pagempleado_cajacomp = cajacomp 'aporte parafiscal caja compensacion
rspagos!pagempleado_apsalud = apsalud 'aporte empleado salud
rspagos!pagempleado_appension = appension 'aporte empleado pension
rspagos.Update
novedad = 0
auxnovedad = 0
rsempleado.MoveNext
Wend
Call verdatos
End Sub
Private Sub Command1_Click()
Unload Me
frmenu.Show
End Sub
Private Sub Form_Load()
Set rslegales = New Recordset
Set rsempleado = New Recordset
Set rspagos = New Recordset
Set rsnovedademple = New Recordset
Dim auxempleado As String
Dim auxpagos As String
Dim auxnovedademple As String
auxempleado = "select * from empleado order by cedula_empleado"
auxpagos = "select * from pagosempleado"
auxnovedademple = "select * from noveemple"
rsempleado.Open auxempleado, con, adOpenDynamic, adLockOptimistic
rsnovedademple.Open auxnovedademple, con, adOpenDynamic, adLockOptimistic
rspagos.Open auxpagos, con, adOpenDynamic, adLockOptimistic
End Sub
Sub verdatos()
Dim y As String
Dim auxpagos1 As String
Dim rspagos1 As Recordset
Set rspagos1 = New Recordset
y = Text1.Text
If rspagos1.State = 1 Then rspagos1.Close
auxpagos1 = "SELECT pagosempleado.pagempleado_appension, pagosempleado.pagempleado_apsalud, pagosempleado.pagempleado_arp, pagosempleado.pagempleado_base, pagosempleado.pagempleado_cajacomp, pagosempleado.pagempleado_cesantias, pagosempleado.pagempleado_cod, pagosempleado.pagempleado_eps, pagosempleado.pagempleado_fecha, pagosempleado.pagempleado_icbf, pagosempleado.pagempleado_intces, pagosempleado.pagempleado_nove, pagosempleado.pagempleado_pencion, pagosempleado.pagempleado_prima, pagosempleado.pagempleado_salario, pagosempleado.pagempleado_sena, pagosempleado.pagempleado_subtrans, pagosempleado.pagempleado_vac, empleado.apellidos_empleado, empleado.nombres_empleado FROM pagosempleado, empleado WHERE pagosempleado.pagempleado_cod = empleado.cedula_empleado"
rspagos1.Open auxpagos1, con, adOpenDynamic, adLockOptimistic
Set cuadri.Recordset = rspagos.DataSource
cuadri.Width = 15000
If cuadri.Height < 6000 Then
cuadri.Height = cuadri.Rows * 255
Else
cuadri.Height = 6000
End If
frmnomina.Width = cuadri.Left + cuadri.Width + 500
frmnomina.Height = cuadri.Height + cuadri.Top + 500
frmnomina.Left = 2500
cuadri.Col = 0
cuadri.Row = 0
cuadri.Text = "cedula"
cuadri.Col = 1
cuadri.Text = "fecha"
cuadri.Col = 2
cuadri.Text = "base"
cuadri.Col = 3
cuadri.Text = "sub trans"
cuadri.Col = 4
cuadri.Text = "novedad"
cuadri.Col = 5
cuadri.Text = "salud emp"
cuadri.Col = 6
cuadri.Text = "pension emp"
cuadri.Col = 7
cuadri.Text = "total emp"
cuadri.Col = 8
cuadri.Text = "eps empresa"
cuadri.Col = 9
cuadri.Text = "pensio empresa"
cuadri.Col = 10
cuadri.Text = "cesantias empresa"
cuadri.Col = 11
cuadri.Text = "icbf"
cuadri.Col = 12
cuadri.Text = "sena"
cuadri.Col = 13
cuadri.Text = "arp"
cuadri.Col = 14
cuadri.Text = "prima"
cuadri.Col = 15
cuadri.Text = "vacasiones"
cuadri.Col = 16
cuadri.Text = "int cesan"
cuadri.Col = 17
cuadri.Text = "caja comp"
c1 = cuadri.Cols - 1
r1 = cuadri.Rows - 1
End Sub
pero cuando estoy en el aux con la sentencia where necesito escoger los campos que solo fueron creados en una fecha determinada intente con un like con un and en el where pero nada no me coge la sentencia por ningun lado asi que estaria agradecido a quien me pudiera pegar una ayudita coon esto gracias y bye