MIME-Version: 1.0
Content-Location: file:///C:/10761221/Mediana.htm
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset="us-ascii"

<html xmlns:o=3D"urn:schemas-microsoft-com:office:office"
xmlns:w=3D"urn:schemas-microsoft-com:office:word"
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; charset=3Dus-ascii">
<meta name=3DProgId content=3DWord.Document>
<meta name=3DGenerator content=3D"Microsoft Word 11">
<meta name=3DOriginator content=3D"Microsoft Word 11">
<link rel=3DFile-List href=3D"Mediana_archivos/filelist.xml">
<title>Mediana</title>
<!--[if gte mso 9]><xml>
 <o:DocumentProperties>
  <o:Template>Normal</o:Template>
  <o:LastAuthor>Marciano Almohalla</o:LastAuthor>
  <o:Revision>2</o:Revision>
  <o:TotalTime>1</o:TotalTime>
  <o:Created>2007-02-10T16:17:00Z</o:Created>
  <o:LastSaved>2007-02-10T16:17:00Z</o:LastSaved>
  <o:Pages>1</o:Pages>
  <o:Words>403</o:Words>
  <o:Characters>2220</o:Characters>
  <o:Company> </o:Company>
  <o:Lines>18</o:Lines>
  <o:Paragraphs>5</o:Paragraphs>
  <o:CharactersWithSpaces>2618</o:CharactersWithSpaces>
  <o:Version>11.8107</o:Version>
 </o:DocumentProperties>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:HyphenationZone>21</w:HyphenationZone>
  <w:PunctuationKerning/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState=3D"false" LatentStyleCount=3D"156">
 </w:LatentStyles>
</xml><![endif]-->
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
	{margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Courier New";
	mso-fareast-font-family:"Times New Roman";}
@page Section1
	{size:595.3pt 841.9pt;
	margin:70.85pt 57.6pt 70.85pt 57.6pt;
	mso-header-margin:35.4pt;
	mso-footer-margin:35.4pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
-->
</style>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Tabla normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
</style>
<![endif]-->
</head>

<body lang=3DES style=3D'tab-interval:35.4pt'>

<div class=3DSection1>

<p class=3DMsoPlainText>'**************************************************=
*****************************</p>

<p class=3DMsoPlainText>'* Mediana</p>

<p class=3DMsoPlainText>'* Calcula y devuelve la MEDIANA de los valores del=
 campo
pasado como par&aacute;metro</p>

<p class=3DMsoPlainText>'* Argumentos: --&gt; nCampo: Nombre del campo del =
que se
desea calcular la Mediana</p>

<p class=3DMsoPlainText>'<span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>--&gt; nTabla: Nombre de la tabla o consulta donde se encuentra nCam=
po</p>

<p class=3DMsoPlainText>'<span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>--&gt; nCondicion: OPCIONAl. Igual que una condici&oacute;n WHERE, p=
ero
sin usar la palabra WHere</p>

<p class=3DMsoPlainText>'* uso: Mediana Mediana(&quot;Precio&quot;,
&quot;Productos&quot;, &quot;Proveedor =3D 'Faluka SA'&quot;)</p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'>'*
Marciano Almohalla 18/01/2007 22:43<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'>'************************************************************************=
*******<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><o:p>&nbsp;</o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'>Function
Mediana(nCampo As String, nTabla As String, Optional nCondicion As String) =
As
Long<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span>Dim dbs As dao.Databas=
e, _<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </spa=
n>strSql
As String, _<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </spa=
n>rst
As dao.Recordset, _<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </spa=
n>i As
Integer, _<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>bolEsPar As Boolean, _<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </spa=
n>lngCentro
As Long, _<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>item1, item2<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </spa=
n><o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span></span>Set dbs =3D Cur=
rentDb</p>

<p class=3DMsoPlainText><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;=
 </span></p>

<p class=3DMsoPlainText><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;
</span>'Construimos la sentencia sql que nos devuelva los registros para los
que queremos calcular la Mediana</p>

<p class=3DMsoPlainText><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;=
 </span><span
lang=3DEN-GB style=3D'mso-ansi-language:EN-GB'>If IsNull(nCondicion) Or nCo=
ndicion
=3D &quot;&quot; Then<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </spa=
n>strSql
=3D &quot;SELECT &quot; &amp; nCampo &amp; &quot; FROM &quot; &amp; nTabla =
&amp;
&quot; ORDER BY &quot; &amp; nCampo<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span>Else<o:p></o:p></span>=
</p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>strSql =3D &quot;SELECT &quot; &amp; nCampo &amp; &quot; FROM &quot;=
 &amp;
nTabla &amp; &quot; WHERE &quot; &amp; nCondicion &amp; &quot; ORDER BY &qu=
ot;
&amp; nCampo<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span>End If<o:p></o:p></spa=
n></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span><o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span>Set rst =3D
dbs.OpenRecordset(strSql) 'Abrimos un recordset usando la sql anterior<o:p>=
</o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span>If rst.EOF =3D False T=
hen 'Si
devuelve registros<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>rst.MoveLast<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>rst.MoveFirst<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span></span>Else 'si no dev=
uelve
registros cerramos y salimos de la funcion</p>

<p class=3DMsoPlainText><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </spa=
n><span
lang=3DEN-GB style=3D'mso-ansi-language:EN-GB'>rst.Close<o:p></o:p></span><=
/p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </spa=
n>Set
dbs =3D Nothing<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </spa=
n></span>Exit
Function</p>

<p class=3DMsoPlainText><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;
</span>End If</p>

<p class=3DMsoPlainText><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;=
 </span></p>

<p class=3DMsoPlainText><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;
</span>'Determinamos si el numero de registros devuelto por el recordset es=
 par
o no</p>

<p class=3DMsoPlainText><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;=
 </span><span
lang=3DEN-GB style=3D'mso-ansi-language:EN-GB'>If rst.RecordCount Mod 2 &gt=
; 0 Then<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </spa=
n>bolEsPar
=3D False<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span>Else<o:p></o:p></span>=
</p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>bolEsPar =3D True<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span>End If<o:p></o:p></spa=
n></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </spa=
n><o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span></span>lngCentro =3D
Int(rst.RecordCount / 2) 'Obtenemos el registro central de la serie</p>

<p class=3DMsoPlainText><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;=
 </span></p>

<p class=3DMsoPlainText><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;
</span>If rst.RecordCount =3D 1 Then 'Si solo hay un registro en el records=
et</p>

<p class=3DMsoPlainText><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>Mediana =3D rst(nCampo)</p>

<p class=3DMsoPlainText><span style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;
</span>Else 'Si hay mas de un registro en el recordset</p>

<p class=3DMsoPlainText><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </spa=
n>If
Not bolEsPar Then 'Si el numero de registros es impar cogemos el del centro=
</p>

<p class=3DMsoPlainText><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;
</span>rst.Move lngCentro</p>

<p class=3DMsoPlainText><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;
</span>Mediana =3D rst(nCampo)</p>

<p class=3DMsoPlainText><span style=3D'mso-spacerun:yes'>&nbsp;</span><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Else=
 'Si
es par, hacemos la media de los dos centrales</p>

<p class=3DMsoPlainText><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;
</span><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB'>rst.Move lngCen=
tro<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;
</span>item1 =3D rst(nCampo)<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;
</span>rst.MovePrevious<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;
</span>item2 =3D rst(nCampo)<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;
</span>Mediana =3D (item1 + item2) / 2<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </spa=
n>End
If<o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span>End If<o:p></o:p></spa=
n></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span><o:p></o:p></span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span>rst.Close<o:p></o:p></=
span></p>

<p class=3DMsoPlainText><span lang=3DEN-GB style=3D'mso-ansi-language:EN-GB=
'><span
style=3D'mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span>Set dbs =3D Nothing<o:=
p></o:p></span></p>

<p class=3DMsoPlainText>End Function</p>

</div>

</body>

</html>

