როგორ სწრაფად დააკოპიროთ ჩანაწერები თქვენს წვდომაში

გააზიარე ახლა:

შეიტყვეთ, თუ როგორ შეგიძლიათ შექმნათ VBA ფუნქცია, რომელიც საშუალებას გაძლევთ დააკოპიროთ გარკვეული მონაცემები წინა ჩანაწერებიდან მხოლოდ ღილაკის დაჭერით. არ არის საჭირო ერთი და იგივე ნივთების განმეორებით აკრეფა.

გქონიათ ოდესმე გამოცდილება, როდესაც გჭირდებათ ახალი ჩანაწერის შეყვანა Access-ში, რომელსაც აქვს ზუსტად იგივე მნიშვნელობები წინა ჩანაწერთან, გარდა ერთი ველისა? ეს შეიძლება იყოს დამღლელი, არა? ეს გაკვეთილი გასწავლით თუ როგორ შეგიძლიათ შექმნათ ფუნქცია, რომელიც ღილაკზე დაწკაპუნებით შეგიძლიათ დააკოპიროთ წინა ჩანაწერის გარკვეული მნიშვნელობები - დაზოგავთ დროს ხელახლა აკრეფისგან. უბრალოდ მიჰყევით ქვემოთ მოცემულ ნაბიჯებს.

ჩამოტვირთეთ არის

თუ გსურთ, რომ ფუნქცია რაც შეიძლება მალე გამოიყენოთ, შეგიძლიათ:

ჩამოტვირთეთ ნიმუშის მონაცემთა ბაზა VBA კოდებით ახლა

წინააღმდეგ შემთხვევაში, თუ გსურთ წვრილმანი, შეგიძლიათ წაიკითხოთ შინაარსი ქვემოთ.

ნაბიჯები Access-ში „ჩანაწერის ასლის შექმნა“ ფუნქციის დასამატებლად

  1. გახსენით თქვენი ფორმა დიზაინის ხედში.გახსენით თქვენი ფორმა დიზაინის ხედში
  2. დაამატეთ ბრძანების ღილაკი. გამოტოვეთ ბრძანების ღილაკის ოსტატი.
  3. დაამატე ან დააჭირეთ ღილაკს ღონისძიება ღილაკზე.დაამატე On Click მოვლენა ღილაკზე
  • დიზაინის ხედვისას აირჩიეთ ღილაკი.
  • გახსენით თვისებების ფურცელი (ALT + Enter)
  • გადადით მოვლენის ჩანართზე > დაწკაპუნებით >…
  • როდესაც აირჩიეთ აღმაშენებელი იხსნება მენიუ, აირჩიეთ Code Builder.
  • დააწკაპუნეთ OK.
  • ეს გახსნის VBA რედაქტორს.
    1. დააკოპირეთ შემდეგი კოდი და შეცვალეთ იგი თქვენს საჭიროებებზე. გამოიყენეთ კომენტარები, როგორც სახელმძღვანელო.
    Private Sub Command24_Click()
        Dim currentID As Long
     
        'TO DO: change all instances of 'BookID' with the actual name of your table's ID or primary key
     
        If IsNull(BookID) Then
            MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation
            Exit Sub
        End If
     
        currentID = BookID
        DoCmd.GoToRecord record:=acNewRec
     
        'TO DO: set the fields to be copied (those that most likely will have the same values)
        'FORMAT: fieldName = Dlookup("fieldname", "tableName", "primaryKeyField=" & currentID)
     
         Author = DLookup("Author", "Books", "BookID=" & currentID)
         Country = DLookup("Country", "Books", "BookID=" & currentID)
         Language = DLookup("Language", "Books", "BookID=" & currentID)
         Genre = DLookup("Genre", "Books", "BookID=" & currentID)
         Publisher = DLookup("Publisher", "Books", "BookID=" & currentID)
     
         Title.SetFocus ‘TO DO: change 'Title' with name of field that is going to be edited by the user
     
    End Sub
  1. ახლა შეამოწმეთ კოდი მუშაობს თუ არა.

კოდი განმარტებულია

ზემოთ მოყვანილი კოდი გამოყენებული იყო წიგნის მაღაზიის მონაცემთა ბაზისთვის. წიგნების სერიის გამო, არის შემთხვევები, როდესაც წიგნის ყველა დეტალი (მაგ. ავტორი, ქვეყანა, ენა და ა.შ.) ერთნაირია, გარდა ერთი ველისა - სათაური. ამრიგად, კოდის საჭიროება.

ქვემოთ მოყვანილი სია აჩვენებს პროგრამის მიმდინარეობას.

  1. შეამოწმეთ მომხმარებელმა შეარჩია თუ არა ჩანაწერი კოპირებისთვის. შეცდომის შესახებ შეტყობინება გამოჩნდება, თუ მომხმარებელი დააწკაპუნებს ღილაკზე ახალი ჩანაწერის დამატების ღილაკზე დაწკაპუნების შემდეგ - ID-ს გაუქმება.
If IsNull(BookID) Then
     MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation
     Exit Sub
End If
  1. მიიღეთ ამჟამინდელი ჩანაწერის ID ან პირველადი გასაღები და მიანიჭეთ მას მნიშვნელობად მიმდინარე ID ეს იქნება გამოყენებული მნიშვნელობების დასაკოპირებლად.
currentID = BookID
  1. დაამატეთ ახალი ჩანაწერი.
DoCmd.GoToRecord record:=acNewRec
  1. დააყენეთ მნიშვნელობები გარკვეული ველებისთვის მიმდინარე ID ეს არის სადაც მონაცემები კოპირებულია არჩეული ჩანაწერიდან.
'FORMAT: fieldName = Dlookup("fieldname", "tableName", "primaryKeyField=" & currentID)

Author = DLookup("Author", "Books", "BookID=" & currentID)
Country = DLookup("Country", "Books", "BookID=" & currentID)
Language = DLookup("Language", "Books", "BookID=" & currentID)
Genre = DLookup("Genre", "Books", "BookID=" & currentID)
Publisher = DLookup("Publisher", "Books", "BookID=" & currentID)
  1. ფოკუსი დააყენეთ იმ ველზე, რომელსაც, სავარაუდოდ, პირველად მომხმარებელი რედაქტირებას გაუკეთებს. ეს აუმჯობესებს მომხმარებლის გამოცდილებას, რადგან გამორიცხავს მომხმარებლის მიერ იმ ველის ხელით არჩევის საჭიროებას, რომლის განახლებაც ჯერ კიდევ საჭიროა.
 Title.SetFocus      ‘TO DO: change 'Title' with name of field that is going to be edited by the user

კორუმპირებული მონაცემთა ბაზის შეკეთება

თუ სამწუხარო მიზეზის გამო, ერთ დღეს გაიღვიძებთ, რომ ვერ ხსნით თქვენს მონაცემთა ბაზას, შეგიძლიათ სცადოთ მესამე მხარის ინსტრუმენტები, რომლებიც მუშაობს წვდომის შეკეთება. სასწაულებს ახდენს.

ავტორი შესავალი:

ჯეიმ სტეკი არის მონაცემთა აღდგენის ექსპერტი DataNumen, Inc., რომელიც მსოფლიო ლიდერია მონაცემთა აღდგენის ტექნოლოგიებში, მათ შორის sql აღდგენა და Excel-ის აღდგენის პროგრამული პროდუქტები. დამატებითი ინფორმაციისთვის ეწვიეთ www.datanumen. ერთად

გააზიარე ახლა:

კომენტარები დახურულია.