£±.Find ¹æ¹ý

Recordset ¿ÀºêÁ§Æ®ÀÇ Find¹æ¹ýÀ» ÀÌ¿ëÇϸé ÁöÁ¤ÇÑ Á¶°Ç¿¡ ÀÏÄ¡ÇÏ´Â ·¹Äڵ带 °Ë»öÇÏ°í ±× ·¹Äڵ带 ÃֽŠ·¹ÄÚµå¶ó ÇÑ´Ù£®·¹Äڵ尡 ¹ß°ßµÇÁö ¾Ê¾Ò´ø ¶§´Â Recordset ¿ÀºêÁ§Æ®ÀÇ BOF¼Ó¼º ¶Ç´Â EOF¼Ó¼ºÀÌ TrueÀÌ µÇ°í ÃֽŠ·¹ÄÚµå´Â ¹ÌÁ¤ÀÇ µÈ´Ù£®
¡¼¼­½Ä¡½recordset.Find Criteria, SkipRows, SearchDirection, Start

recordset : ¿­·Á ÀÖ´Â Recordset ¿ÀºêÁ§Æ®
Criteria : ¿­ÀÇ À̸§, ºñ±³ ¿¬»ê ÀÚ, °ªÀ» ÁöÁ¤ÇÏ´Â ¼º¸íÀ» Æ÷ÇÔÇÒ ¹®ÀÚ ¿­ÇüÀÇ °ªÀ» ÁöÁ¤
SkipRows : °³½Ã À§Ä¡¿¡¼­ Àб⠳¯¸®´Â ·¹ÄÚµå ¼ö£¨»ý·« °¡´É£©
SearchDirection : °Ë»ö ¹æÇ⣨»ý·« °¡´É£©
Start : °Ë»öÀÇ °³½Ã À§Ä¡(»ý·« °¡´É)
¡ßSearchDirection
Á¤¼ö °ª ¼³¸í
adSearchBackward -1 ÈÄ¹æ °Ë»öÀ» Çϰí Recordset ÀÇ ¾ÕÀ¸·Î Á¾·áÇÑ´Ù£®ÀÏÄ¡ÇÏ´Â ·¹Äڵ尡 ¹ß°ßµÇÁö ¾Ê´Â °æ¿ì£¬·¹ÄÚµå Æ÷ÀÎÅÍ´Â BOF·Î À̵¿ÇÑ´Ù£®
adSearchForward 1 Àü¹æ °Ë»öÀ» Çϰí Recordset ÀÇ ¸»¹Ì¿¡ Á¾·áÇÑ´Ù£®ÀÏÄ¡ÇÏ´Â ·¹Äڵ尡 ¹ß°ßµÇÁö ¾Ê´Â °æ¿ì£¬·¹ÄÚµå Æ÷ÀÎÅÍ´Â EOF ·Î À̵¿ÇÑ´Ù£®
 

¡¼Æ÷ÀÎÆ®¡½

CriteriaÀμö´Â °Ë»ö¿¡ »ç¿ëÇÏ´Â Çʵ壬ºñ±³ ¿¬»ê ÀÚ °Ë»öÇÏ´Â °ªÀ¸·Î ±¸¼ºµÇ´Â ¹®ÀåÀÌ´Ù£® ºñ±³ ¿¬»êÀÚ¿¡ "like" À»(¸¦) »ç¿ëÇÏ´Â °æ¿ì ¹®ÀÚ ¿­Ä¡¿¡ ÆÛ¼¾Æ® (%) ¸¦ Æ÷ÇÔÇϸé 1 ³ª·çÅÍ ¶Ç´Â º¹¼öÀÇ ¹®ÀÚ ¶Ç´Â ºÎºÐ ¹®ÀÚ¿­À» °Ë»öÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù£®´ÜÁö ÆÛ¼¾Æ®´Â °Ë»ö ¹®ÀÚ¿­ÀÇ ¸»¹Ì¿¡ »ç¿ëÇϰųª ¶Ç´Â °Ë»ö ¹®ÀÚ¿­ÀÇ ¾Õ°ú ¸»¹ÌÀÇ ¾ç¹æ¿¡¼­ »ç¿ëÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù£®

SkipRowsÀμö´Â °Ë»ö ½ÇÇà ¶§·Î´Â Àб⠳¯¸®´Â ·¹ÄÚµå ¼öÀÌ´Ù£®ÀÌ Àμö¸¦ »ý·«Çϰųª  ¶Ç´Â 0À» ÁöÁ¤ÇÏ¸é £¬Find ¹æ¹ýÀº ÃֽŠ·¹Äڵ忡¼­ °Ë»öÀ» ÇÑ´Ù£®¸¸¾à£¬ÃֽŠ·¹Äڵ尡 °Ë»ö Á¶°ÇÀ» ä¿öÁÖ°í ÀÖ´Â °æ¿ì¿¡´Â ¾ðÁ¦³ª ÀÌ ·¹Äڵ尡 °Ë»öµÇ°í ´Ù¸¥ ·¹Äڵ带 °Ë»öÇÏ´Â °ÍÀº ºÒ°¡´ÉÇÏ´Ù£®SkipRowsÀμö¸¦ 1À¸·Î Çϸ飬ÃֽŠ·¹Äڵ带 ÀÐ°í ³¯¸®°í£¬´ÙÀ½ÀÇ ·¹Äڵ带 °Ë»öÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù£®

SearchDirectionÀμö´Â °Ë»öÀÇ ¹æÇâÀ» ÁöÁ¤ÇÑ´Ù£®Recordset ¿ÀºêÁ§Æ®ÀÇ CursorType¼Ó¼ºÀÌ adOpenForwardOnlyÀÇ °æ¿ì´Â ÃֽŠ·¹Äڵ忡¼­ ¾Õ ·¹ÄÚµå ¹æÇâ¿¡ÀÇ °Ë»öÀº ½ÇÇàÇÒ ¼ö ¾ø´Ù£®

StartÀμö´Â °Ë»ö °³½Ã À§Ä¡¸¦ ÁöÁ¤ÇÑ´Ù£®»ý·«ÇÑ °æ¿ì´Â ÃֽŠ·¹Äڵ忡¼­ °Ë»öÀ» °³½ÃÇÑ´Ù£®

¡á °Ë»ö Á¶°ÇÀÇ ¼­½Ä

¡¡ °Ë»ö¿¡ »ç¿ëÇÏ´Â ÇʵåÀÇ µ¥ÀÌÅÍ ÇüÅ¿¡ ÀÇÇØ °Ë»öÇÏ´Â °ªÀÇ ¼­½ÄÀÌ ´Ù¸£´Ù£®
¡¡¡¡¡¡
¡¡¡¡ ¡ÜÅØ½ºÆ® ÇüÅÂÀÇ ÇʵåÀÇ °æ¿ì °Ë»öÇÏ´Â °ªÀ» Single Quation£¨'£©À¸·Î ¹­¾î¾ß ÇÑ´Ù£®
¡¡¡¡¡¡ °Ë»öÇÏ´Â °ªÀ» º¯¼ö·Î ÁöÁ¤ÇÏ´Â °æ¿ì¿¡µµ Single QuationÀÌ ÇÊ¿äÇÏ´Ù£®

¡¡¡¡¡¡¡¡
¡¡¡¡¡¡¡¡ (¿¹£© ¡¡ RS£®Find "Ŭ·¡½º = 'TA'"
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ RS£®Find "Ŭ·¡½º¡¡= ' " & ¡¡Str ¡¡& ¡¡"'"


¡¡   ¡Ü¼öÄ¡ ÇüÀÇ ÇʵåÀÇ °æ¿ì¿¡´Â °Ë»öÇÏ´Â °ªÀ» ±×´ë·Î ±â¼úÇÑ´Ù£®

¡¡¡¡¡¡¡¡ £¨¿¹£©¡¡RS£®Find "Á¡¼ö ¡¡> 80"
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ RS£®Find "Á¡¼ö ¡¡> "¡¡£¦¡¡Str¡¡


¡¡¡¡ ¡Ü³¯Â¥ ½Ã°¢ ÇüÇʵåÀÇ °æ¿ì£¬°Ë»öÇÏ´Â °ªÀ» ˜Þ±âÈ£(££)À¸·Î ¹­¾î¾ß ÇÑ´Ù£®°Ë»öÇÏ´Â °ª
       À» º¯¼ö·Î ÁöÁ¤ÇÏ´Â Àå¼Ò

¡¡¡¡¡¡ ÇÕµµ ˜Þ±âÈ£°¡ ÇÊ¿äÇÕ´Ï´Ù£®


¡¡¡¡¡¡¡¡ £¨¿¹£©¡¡RS£®Find "ÀÔÇÐ ÀÏ¡¡= #2004/04/01#"
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ RS£®Find "ÀÔÇÐ ÀÏ¡¡= ¡¡# "¡¡£¦¡¡Str¡¡& "#"

£².¾Õ ·¹Äڵ带 °Ë»öÇÑ´Ù.

Find ¹æ¹ýÀÇ SkipRowsÀμö¸¦ 0£¬SearchDirectionÀμö¸¦ adSearchForwardÀ¸·Î Çϸé ÃֽŠ·¹Äڵ忡¼­ ·¹ÄÚµå¼ÂÀÇ ÃÖÁ¾ ¹æÇâ¿¡ ÇâÇÏ¿© °³½ÃÇϰí óÀ½¿¡ ã¾Ò´ø ·¹Äڵ带 ÃֽŠ·¹ÄÚµå·Î ÇÑ´Ù£®ÇØ´çµÇ´Â ·¹Äڵ尡 ¹ß°ßµÇÁö ¾Ê¾Ò´ø °æ¿ì¿¡´Â, Recordset ¿ÀºêÁ§Æ®ÀÇ EOF¼Ó¼ºÀÌ TrueÀÌ µÇ°í ÃֽŠ·¹ÄÚµå´Â ¹ÌÁ¤ÀÇ µÈ´Ù. ÀÌ ¶§ ÃֽŠ·¹Äڵ带 ÂüÁ¶ÇÑ´Ù¸é ¿¡·¯°¡ ¹ß»ýÇÑ´Ù£®Find ¹æ¹ýÀ» ½ÇÇàÇÑ µÚ¿¡´Â ¹Ýµå½Ã EOF¼Ó¼ºÀÇ °ªÀ» Á¶»çÇÏ°í ·¹Äڵ尡 ¹ß°ßµÆÀ»Áö ¾î¶³Áö¸¦ È®ÀÎÇÑ´Ù£®


¡¼»ç¿ë ¿¹¡½

¡¡¡¡¡¡Public Sub °Ë»ö()
 ¡¡¡¡¡¡   Dim CN As ADODB.Connection
 ¡¡¡¡¡¡   Dim RS As ADODB.Recordset
 ¡¡¡¡¡¡   Dim criteria As String
        
  ¡¡¡¡¡¡  'Á¢¼Ó
  ¡¡¡¡¡¡  Set CN = CurrentProject.Connection
    
   ¡¡¡¡¡¡ '·¹ÄÚµå¼ÂÀ» Ãëµæ
  ¡¡¡¡¡¡  Set RS = New ADODB.Recordset
 ¡¡¡¡¡¡   RS.Open "Çлý ¸íºÎ", CN, adOpenKeyset, adLockOptimistic
    
  ¡¡¡¡¡¡  '°Ë»ö
  ¡¡¡¡¡¡  criteria = "¼º¸í Like 'È«±æµ¿%'"
   ¡¡¡¡¡¡ RS.Find criteria, 0, adSearchForward
    
  ¡¡¡¡¡¡  'È®ÀÎ
  ¡¡¡¡¡¡  If RS.EOF Then
   ¡¡¡¡¡¡   MsgBox ("¹ß°ßµÇÁö ¾Ê½À´Ï´Ù")
  ¡¡¡¡¡¡  Else
    ¡¡¡¡¡¡  MsgBox (RS!ÇÐÀû ¹øÈ£ & "  " & RS!¼º¸í)
  ¡¡¡¡¡¡  End If
    
  ¡¡¡¡¡¡  'Á¾·á
  ¡¡¡¡¡¡  RS.Close:  Set RS = Nothing
  ¡¡¡¡¡¡  CN.Close:  Set CN = Nothing
¡¡¡¡¡¡End Sub

£³.¿¬¼ÓÀ¸·Î °Ë»öÇÑ´Ù.

µ¿ÀÏ Á¶°ÇÀ¸·Î ·¹Äڵ带 °è¼ÓÇÏ°í °Ë»öÇÏ´Â °æ¿ì, ù¹øÂ°ÀÇ ·¹Äڵ带 °Ë»öÇÏ´Â °æ¿ì¿¡´Â SkipRowsÀμö¸¦ 0À¸·Î ÇÏ¿© ½ÇÇàÇÏ°í£¬£²¹øÂ° ÀÌÈÄÀÇ ·¹Äڵ带 °Ë»öÇÏ´Â °æ¿ì´Â SkipRowsÀμö¸¦ 1·Î ÇÑ´Ù£®

¡¼»ç¿ë ¿¹¡½

¡¡¡¡¡¡Public Sub ¿¬¼Ó °Ë»ö()
¡¡¡¡¡¡    Dim CN As ADODB.Connection
 ¡¡¡¡¡¡   Dim RS As ADODB.Recordset
¡¡¡¡¡¡    Dim criteria As String
        
 ¡¡¡¡¡¡   'Á¢¼Ó
 ¡¡¡¡¡¡   Set CN = CurrentProject.Connection
    
  ¡¡¡¡¡¡  '·¹ÄÚµå¼ÂÀ» Ãëµæ
 ¡¡¡¡¡¡   Set RS = New ADODB.Recordset
  ¡¡¡¡¡¡  RS.Open "Çлý ¸íºÎ", CN, adOpenKeyset, adLockOptimistic
    
   ¡¡¡¡¡¡ '1ȸ°ÀÇ °Ë»ö
   ¡¡¡¡¡¡ criteria = "¼º¸í Like 'È«±æµ¿%'"
   ¡¡¡¡¡¡ RS.Find criteria, 0, adSearchForward
    
   ¡¡¡¡¡¡ If RS.EOF Then
   ¡¡¡¡¡¡   MsgBox ("¹ß°ßµÇÁö ¾Ê½À´Ï´Ù")
    
  ¡¡¡¡¡¡  '2ȸ° ÀÌÈÄÀÇ °Ë»ö
  ¡¡¡¡¡¡  Else
    ¡¡¡¡¡¡  Do Until RS.EOF
     ¡¡¡¡¡¡   MsgBox (RS!ÇÐÀû ¹øÈ£ & "  " & RS!¼º¸í)
     ¡¡¡¡¡¡   RS.Find criteria, 1, adSearchForward
    ¡¡¡¡¡¡  Loop
    ¡¡¡¡¡¡  MsgBox ("°Ë»ö Á¾·á")
   ¡¡¡¡¡¡ End If
    
   ¡¡¡¡¡¡ 'Á¾·á
   ¡¡¡¡¡¡ RS.Close:  Set RS = Nothing
   ¡¡¡¡¡¡ CN.Close:  Set CN = Nothing
¡¡¡¡¡¡End Sub

£´.Seek ¹æ¹ý

Seek¹æ¹ýÀº Å×ÀÌºí¿¡ ¼³Á¤µÇ¾î ÀÖ´Â À妽º¸¦ ÀÌ¿ëÇÏ°í °Ë»öÀ» Çϱ⠶§¹®¿¡ Find ¹æ¹ýº¸´Ùµµ °í¼ÓÀ¸·Î ·¹Äڵ带 °Ë»öÇÒ ¼ö ÀÖ´Ù£®
¡¼¼­½Ä¡½recordset.Seek KeyValues,SeekOption
¡¡¡¡¡¡¡¡
recordset£º¿­·Á ÀÖ´Â Recordset ¿ÀºêÁ§Æ®
KeyValues£º°Ë»öÇÏ´Â °ª
SeekOption£º°Ë»ö ¹æ¹ý
¡ßSeekOption
Á¤¼ö °ª ¼³¸í
adSeekFirstEQ 1 KeyValues ¿Í ÀÏÄ¡ÇÏ´Â ÃÖÃÊÀÇ Å°¸¦ °Ë»öÇÑ´Ù£®
adSeekLastEQ 2 KeyValues ¿Í ÀÏÄ¡ÇÏ´Â ÃÖÈÄÀÇ Å°¸¦ °Ë»öÇÑ´Ù£®
adSeekAfterEQ 4 KeyValues ¿Í ÀÏÄ¡Çϴ Ű£¬ ¶Ç´Â ±× Á÷ÈÄÀÇ Å°ÀÇ ¾î´À ÂÊÀ̳ª °Ë»öÇÑ´Ù£®
adSeekAfter 8 KeyValues¶ó°í ÀÏÄ¡Çϴ ŰÀÇ Á÷ÈÄÀÇ Å°¸¦ °Ë»öÇÑ´Ù£®
adSeekBeforeEQ 16 KeyValues ¶ó°í(¿Í) ÀÏÄ¡Çϴ Ű£¬ ¶Ç´Â ±× Á÷ÀüÀÇ Å°ÀÇ ¾î´À ÂÊÀ̳ª¸¦ °Ë»öÇÑ´Ù£®
adSeekBefore 32 KeyValues ¿Í ÀÏÄ¡Çϴ ŰÀÇ Á÷ÀüÀÇ Å°¸¦ °Ë»öÇÑ´Ù£®

¡¼Æ÷ÀÎÆ®¡½
  1. °Ë»ö¿¡ »ç¿ëÇÏ´Â Çʵå´Â Å×ÀÌºí¿¡ ¼³Á¤µÇ°í ÀÖ´Â À妽ºÀÌ´Ù£®Å×ÀÌºí¿¡´Â º¹¼öÀÇ À妽º¸¦ ¼³Á¤ÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù£®¾î´À À妽º¸¦ »ç¿ëÇÏ°í °Ë»öÀ» ½ÇÇàÇÒÁö ´Â Recordset ¿ÀºêÁ§Æ®ÀÇ Index¼Ó¼ºÀ¸·Î ÁöÁ¤ÇÑ´Ù£®Seek ¹æ¹ýÀº Recordset ¿ÀºêÁ§Æ®ÀÇ Open ¹æ¹ýÀÇ optionsÀμö¿¡ adCmdTableDirectÀ» ÁöÁ¤ÇÏ°í ¿­·È´ø Recordset ¿ÀºêÁ§Æ®¸¸À¸·Î ½ÇÇà °¡´ÉÇÏ´Ù£®
  2. Seek ¹æ¹ýÀ» ½ÇÇàÇÑ °á°ú Á¶°ÇÀ» ä¿öÁÖ´Â ·¹Äڵ尡 ¹ß°ßµÇÁö ¾Ê¾Ò´ø ¶§´Â Recordset ¿ÀºêÁ§Æ®ÀÇ BOF¼Ó¼º ¶Ç´Â EOF¼Ó¼ºÀÌ TrueÀÌ µÇ°í£¬ÃֽŠ·¹ÄÚµå´Â ¹ÌÁ¤ÀÇ µÈ´Ù£®ÀÌ ¶§ ÃֽŠ·¹Äڵ带 ÂüÁ¶ÇÑ´Ù¸é ¿¡·¯°¡ µÈ´Ù£®Find ¹æ¹ýÀ» ½ÇÇàÇÑ ÈÄ¿¡´Â ¹Ýµå½Ã BOF¼Ó¼º ¶Ç´Â EOF¼Ó¼ºÀÇ °ªÀ» Á¶»çÇÏ°í ·¹Äڵ尡 ¹ß°ßµÆÀ»Áö ¾î¶³Áö¸¦ È®ÀÎÇÑ´Ù£®¾î´À ÂÊÀÇ ¼Ó¼ºÀ» ÀÌ¿ëÇÒÁö´Â °Ë»öÀÇ ¹æ¹ý¿¡ ÀÇÇØ ´Ù¸£´Ù£®
  3. Seek ¹æ¹ýÀÇ KeyValuesÀμö´Â °Ë»öÇÏ´Â °ªÀÇ µ¥ÀÌÅÍ ÇüÅ¿¡ ÀÇÇØ ¼­½ÄÀÌ ´Ù¸£´Ù£®ÅؽºÆ® ÇüÅÂÀÇ °æ¿ì´Â ±× ¹®ÀÚ¿­À» Double Quatation£¨"£©ÀÌ°í £¬³¯Â¥ ½Ã°¢ÇüÀÇ °æ¿ì´Â ˜Þ±âÈ££¨£££©À¸·Î ¹­¾î¾ß ÇÑ´Ù£®¼öÄ¡ÇüÀÇ °æ¿ì¿¡´Â °Ë»öÇÏ´Â °ªÀ» ±×´ë·Î ±â¼úÇÑ´Ù£®

¡¼¼­½Ä¡½recordset.Index = indexname

recordset£º¿­·Á ÀÖ´Â Recordset ¿ÀºêÁ§Æ®
indexname£ºÅ×ÀÌºí¿¡ ¼³Á¤µÇ°í ÀÖ´Â À妽º À̸§
¿¹¸¦ µé¸é£¬[ÇÐÀû ¹øÈ£]Çʵ忡[¹øÈ£]À̶ó°í ¸»ÇÏ´Â À妽º°¡ ¼³Á¤µÇ°í ÀÖ´Â ¶§ ÀÌ À妽º¸¦ »ç¿ëÇÏ°í ·¹Äڵ带 °Ë»öÇÏ´Â µ¥´Â£¬´ÙÀ½°ú °°ÀÌ ±â¼úÇÑ´Ù£®
RS.Index = "¹øÈ£"
RS.Seek "775501A", adSeekFirstEQ

¡¼»ç¿ë ¿¹¡½
¡¡¡¡¡¡Public Sub Seek °Ë»ö()
¡¡¡¡¡¡   Dim CN As ADODB.Connection
 ¡¡¡¡¡¡   Dim RS As ADODB.Recordset
  ¡¡¡¡¡¡  Dim DAT As Long
        
  ¡¡¡¡¡¡  'Á¢¼Ó
  ¡¡¡¡¡¡  Set CN = CurrentProject.Connection
    
  ¡¡¡¡¡¡  '·¹ÄÚµå¼ÂÀ» Ãëµæ
  ¡¡¡¡¡¡  Set RS = New ADODB.Recordset
  ¡¡¡¡¡¡  RS.Open "Çлý ¸íºÎ", CN, adOpenKeyset, adLockOptimistic, adCmdTableDirect
    
   ¡¡¡¡¡¡ '°Ë»ö
   ¡¡¡¡¡¡ DAT = 2101
   ¡¡¡¡¡¡ RS.Index = "¹øÈ£"
  ¡¡¡¡¡¡  RS.Seek DAT, adSeekFirstEQ
    
  ¡¡¡¡¡¡  'È®ÀÎ 
¡¡¡¡¡¡ If RS.EOF Then
    ¡¡¡¡¡¡  MsgBox ("¹ß°ßµÇÁö ¾Ê½À´Ï´Ù")
   ¡¡¡¡¡¡ Else
    ¡¡¡¡¡¡  MsgBox (RS!ÇÐÀû ¹øÈ£ & "  " & RS!¼º¸í)
   ¡¡¡¡¡¡ End If
    
   ¡¡¡¡¡¡ 'Á¾·á
  ¡¡¡¡¡¡  RS.Close:  Set RS = Nothing
   ¡¡¡¡¡¡ CN.Close:  Set CN = Nothing
¡¡¡¡¡¡End Sub