Os pongo la función por si alguien quiere exarle un vistazo y me puede dar alguna ayudita.
Código PHP:
Function BarrarptEmpresasIRecibidoTrueEvolucion() '(c1 As String, Optional c2 As String, Optional c3 As String, Optional c4 As String, Optional c5 As String, Optional c6 As String)
On Error GoTo etq
Dim ts As Recordset
Dim rs As Recordset
Dim sql As String
Dim Ola1, Ola2, Ola3, Ola4, Ola5, Ola6 As String
Dim Año1 As Integer
Dim Año2 As Integer
Dim Año3 As Integer
Dim Año4 As Integer
Dim Año5 As Integer
Dim Año6 As Integer
Dim resp
Dim pos
Dim I As Byte
Dim vObj As Form
Set vObj = Forms!frmEmpIRecibidoEvolucion
'limpio
CurrentDb.Execute "Delete * from tmpEmpRecibidasEvolucion"
Dim qdf As QueryDef
Set rs = CurrentDb.OpenRecordset("select * from tmpEmpRecibidasEvolucion", dbOpenDynaset)
'parametros de entrada ----------------------------------------------
'Ola/Año 1
resp = vObj.txt1s
'resp = c1
If Not IsNull(resp) Then
pos = InStr(1, resp, "/")
If pos = 0 Then
MsgBox ("Formato incorrecto." & vbCrLf & vbCrLf & _
"(formato ola/año)" & vbCrLf & _
"pej. 2/2000 -> segunda ola del año 2000"), vbExclamation
Exit Function
Else
Ola1 = Mid(resp, 1, pos - 1)
Año1 = Mid(resp, pos + 1, Len(resp))
'i = 1
End If
End If
'Ola/Año 2
resp = vObj.txt2s
'resp = c2
If Not IsNull(resp) Then
pos = InStr(1, resp, "/")
If pos = 0 Then
MsgBox ("Formato incorrecto." & vbCrLf & vbCrLf & _
"(formato ola/año)" & vbCrLf & _
"pej. 2/2000 -> segunda ola del año 2000"), vbExclamation
Exit Function
Else
Ola2 = Mid(resp, 1, pos - 1)
Año2 = Mid(resp, pos + 1, Len(resp))
'i = 2
End If
End If
'Ola/Año 3
resp = vObj.txt3s
'resp = c3
If Not IsNull(resp) Then
pos = InStr(1, resp, "/")
If pos = 0 Then
MsgBox ("Formato incorrecto." & vbCrLf & vbCrLf & _
"(formato ola/año)" & vbCrLf & _
"pej. 2/2000 -> segunda ola del año 2000"), vbExclamation
Exit Function
Else
Ola3 = Mid(resp, 1, pos - 1)
Año3 = Mid(resp, pos + 1, Len(resp))
'i = 3
End If
End If
'Ola/Año 4
resp = vObj.txt4s
'resp = c4
If Not IsNull(resp) Then
pos = InStr(1, resp, "/")
If pos = 0 Then
MsgBox ("Formato incorrecto." & vbCrLf & vbCrLf & _
"(formato ola/año)" & vbCrLf & _
"pej. 2/2000 -> segunda ola del año 2000"), vbExclamation
Exit Function
Else
Ola4 = Mid(resp, 1, pos - 1)
Año4 = Mid(resp, pos + 1, Len(resp))
'i = 4
End If
End If
'Ola/Año 5
resp = vObj.txt5s
'resp = c5
If Not IsNull(resp) Then
pos = InStr(1, resp, "/")
If pos = 0 Then
MsgBox ("Formato incorrecto." & vbCrLf & vbCrLf & _
"(formato ola/año)" & vbCrLf & _
"pej. 2/2000 -> segunda ola del año 2000"), vbExclamation
Exit Function
Else
Ola5 = Mid(resp, 1, pos - 1)
Año5 = Mid(resp, pos + 1, Len(resp))
'I = 3
End If
End If
'Ola/Año 6
resp = vObj.txt6s
'resp = c6
If Not IsNull(resp) Then
pos = InStr(1, resp, "/")
If pos = 0 Then
MsgBox ("Formato incorrecto." & vbCrLf & vbCrLf & _
"(formato ola/año)" & vbCrLf & _
"pej. 2/2000 -> segunda ola del año 2000"), vbExclamation
Exit Function
Else
Ola6 = Mid(resp, 1, pos - 1)
Año6 = Mid(resp, pos + 1, Len(resp))
'i = 4
End If
End If
'-----------------------------------------------------
Set qdf = CurrentDb.QueryDefs("consEmpRecibidasEvolucion1") 'abro query.
resp = SysCmd(acSysCmdSetStatus, "Ola/Año 1")
vObj.txt1s.BackColor = 10079487
qdf.Parameters("Introduzca Nº de Ola") = Ola1
qdf.Parameters("Introduzca Año de la Ola") = Año1
Set ts = qdf.OpenRecordset
While Not ts.EOF
rs.AddNew
rs.Fields("npanelista") = ts.Fields("npanelista")
rs.Fields("FaxConLlamadas1") = ts.Fields("FaxConLlamadas")
rs.Fields("FaxEspontaneo1") = ts.Fields("FaxEspontaneo")
rs.Fields("Telefono1") = ts.Fields("Telefono")
rs.Update
ts.MoveNext
Wend
resp = SysCmd(acSysCmdSetStatus, "Ola/Año 2")
vObj.txt2s.BackColor = 10079487
qdf.Parameters("Introduzca Nº de Ola") = Ola2
qdf.Parameters("Introduzca Año de la Ola") = Año2
Set ts = qdf.OpenRecordset
If Not rs.EOF Then rs.MoveFirst
While Not ts.EOF
If IsNull(ts.Fields("tmpNpanelista")) Then 'existe?
rs.AddNew
Else
rs.FindFirst "npanelista='" & ts.Fields("npanelista") & "'"
rs.Edit
End If
rs.Fields("npanelista") = ts.Fields("npanelista")
rs.Fields("FaxConLlamadas2") = ts.Fields("FaxConLlamadas")
rs.Fields("FaxEspontaneo2") = ts.Fields("FaxEspontaneo")
rs.Fields("Telefono2") = ts.Fields("Telefono")
rs.Update
ts.MoveNext
Wend
resp = SysCmd(acSysCmdSetStatus, "Ola/Año 3")
vObj.txt3s.BackColor = 10079487
qdf.Parameters("Introduzca Nº de Ola") = Ola3
qdf.Parameters("Introduzca Año de la Ola") = Año3
Set ts = qdf.OpenRecordset
If Not rs.EOF Then rs.MoveFirst
While Not ts.EOF
If IsNull(ts.Fields("tmpNpanelista")) Then
rs.AddNew
Else
rs.FindFirst "npanelista='" & ts.Fields("npanelista") & "'"
rs.Edit
End If
rs.Fields("npanelista") = ts.Fields("npanelista")
rs.Fields("FaxConLlamadas3") = ts.Fields("FaxConLlamadas")
rs.Fields("FaxEspontaneo3") = ts.Fields("FaxEspontaneo")
rs.Fields("Telefono3") = ts.Fields("Telefono")
rs.Update
ts.MoveNext
Wend
resp = SysCmd(acSysCmdSetStatus, "Ola/Año 4")
vObj.txt4s.BackColor = 10079487
qdf.Parameters("Introduzca Nº de Ola") = Ola4
qdf.Parameters("Introduzca Año de la Ola") = Año4
Set ts = qdf.OpenRecordset
If Not rs.EOF Then rs.MoveFirst
While Not ts.EOF
If IsNull(ts.Fields("tmpNpanelista")) Then
rs.AddNew
Else
rs.FindFirst "npanelista='" & ts.Fields("npanelista") & "'"
rs.Edit
End If
rs.Fields("npanelista") = ts.Fields("npanelista")
rs.Fields("FaxConLlamadas4") = ts.Fields("FaxConLlamadas")
rs.Fields("FaxEspontaneo4") = ts.Fields("FaxEspontaneo")
rs.Fields("Telefono4") = ts.Fields("Telefono")
rs.Update
ts.MoveNext
Wend
resp = SysCmd(acSysCmdSetStatus, "Ola/Año 5")
vObj.txt5s.BackColor = 10079487
qdf.Parameters("Introduzca Nº de Ola") = Ola5
qdf.Parameters("Introduzca Año de la Ola") = Año5
Set ts = qdf.OpenRecordset
If Not rs.EOF Then rs.MoveFirst
While Not ts.EOF
If IsNull(ts.Fields("tmpNpanelista")) Then
rs.AddNew
Else
rs.FindFirst "npanelista='" & ts.Fields("npanelista") & "'"
rs.Edit
End If
rs.Fields("npanelista") = ts.Fields("npanelista")
rs.Fields("FaxConLlamadas5") = ts.Fields("FaxConLlamadas")
rs.Fields("FaxEspontaneo5") = ts.Fields("FaxEspontaneo")
rs.Fields("Telefono5") = ts.Fields("Telefono")
rs.Update
ts.MoveNext
Wend
resp = SysCmd(acSysCmdSetStatus, "Ola/Año 6")
vObj.txt6s.BackColor = 10079487
qdf.Parameters("Introduzca Nº de Ola") = Ola6
qdf.Parameters("Introduzca Año de la Ola") = Año6
Set ts = qdf.OpenRecordset
If Not rs.EOF Then rs.MoveFirst
While Not ts.EOF
If IsNull(ts.Fields("tmpNpanelista")) Then
rs.AddNew
Else
rs.FindFirst "npanelista='" & ts.Fields("npanelista") & "'"
rs.Edit
End If
rs.Fields("npanelista") = ts.Fields("npanelista")
rs.Fields("FaxConLlamadas6") = ts.Fields("FaxConLlamadas")
rs.Fields("FaxEspontaneo6") = ts.Fields("FaxEspontaneo")
rs.Fields("Telefono6") = ts.Fields("Telefono")
rs.Update
ts.MoveNext
Wend
'-----------------------------------------------------------
resp = SysCmd(acSysCmdSetStatus, "Calcula Peso...")
If Not rs.EOF Then rs.MoveFirst
Set ts = CurrentDb.OpenRecordset("consEmpRecibidasEvolucion2") 'abro query.
While Not ts.EOF
rs.Edit
If IsNull(ts.Fields("cluster")) Then
rs.Fields("cluster") = ""
Else
rs.Fields("cluster") = ts.Fields("cluster")
End If
rs.Fields("empresa") = ts.Fields("empresa")
'If IsNull(ts.Fields("peso")) Or ts.Fields("peso") = "" Then
' rs.Fields("peso") = 0
' Else
' rs.Fields("peso") = ts.Fields("peso")
'End If
rs.Fields("peso") = CalculaValor(ts.Fields("NPANELISTA"), ts.Fields("CLUSTER"))
rs.Update
ts.MoveNext
rs.MoveNext
Wend
resp = SysCmd(acSysCmdClearStatus)
'-----------------------------------------------------------
DesdeForm = "BarrarptEmpresasIRecibidoTrueEvolucion"
DesdeN = Ola1 & "/" & Año1 & "*" & Ola2 & "/" & Año2 & "*" & Ola3 & "/" & Año3 & "*" & Ola4 & "/" & Año4 & "*" & Ola5 & "/" & Año5 & "*" & Ola6 & "/" & Año6
DoCmd.OpenReport "EmpresasIRecibidoTrueEvolucion", acViewPreview
Forms!frmEmpIRecibidoEvolucion.SetFocus
DoCmd.Close
End Function
