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

- დაამატეთ ბრძანების ღილაკი. გამოტოვეთ ბრძანების ღილაკის ოსტატი.
- დაამატე ან დააჭირეთ ღილაკს ღონისძიება ღილაკზე.
- დიზაინის ხედვისას აირჩიეთ ღილაკი.
- გახსენით თვისებების ფურცელი (ALT + Enter)
- გადადით მოვლენის ჩანართზე > დაწკაპუნებით >…
- როდესაც აირჩიეთ აღმაშენებელი იხსნება მენიუ, აირჩიეთ Code Builder.
- დააწკაპუნეთ OK.
- ეს გახსნის VBA რედაქტორს.
-
- დააკოპირეთ შემდეგი კოდი და შეცვალეთ იგი თქვენს საჭიროებებზე. გამოიყენეთ კომენტარები, როგორც სახელმძღვანელო.
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 - ახლა შეამოწმეთ კოდი მუშაობს თუ არა.
კოდი განმარტებულია
ზემოთ მოყვანილი კოდი გამოყენებული იყო წიგნის მაღაზიის მონაცემთა ბაზისთვის. წიგნების სერიის გამო, არის შემთხვევები, როდესაც წიგნის ყველა დეტალი (მაგ. ავტორი, ქვეყანა, ენა და ა.შ.) ერთნაირია, გარდა ერთი ველისა - სათაური. ამრიგად, კოდის საჭიროება.
ქვემოთ მოყვანილი სია აჩვენებს პროგრამის მიმდინარეობას.
- შეამოწმეთ მომხმარებელმა შეარჩია თუ არა ჩანაწერი კოპირებისთვის. შეცდომის შესახებ შეტყობინება გამოჩნდება, თუ მომხმარებელი დააწკაპუნებს ღილაკზე ახალი ჩანაწერის დამატების ღილაკზე დაწკაპუნების შემდეგ - ID-ს გაუქმება.
If IsNull(BookID) Then MsgBox prompt:="Please select the record to copy first.", buttons:=vbExclamation Exit Sub End If
- მიიღეთ ამჟამინდელი ჩანაწერის ID ან პირველადი გასაღები და მიანიჭეთ მას მნიშვნელობად მიმდინარე ID ეს იქნება გამოყენებული მნიშვნელობების დასაკოპირებლად.
currentID = BookID
- დაამატეთ ახალი ჩანაწერი.
DoCmd.GoToRecord record:=acNewRec
- დააყენეთ მნიშვნელობები გარკვეული ველებისთვის მიმდინარე 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)
- ფოკუსი დააყენეთ იმ ველზე, რომელსაც, სავარაუდოდ, პირველად მომხმარებელი რედაქტირებას გაუკეთებს. ეს აუმჯობესებს მომხმარებლის გამოცდილებას, რადგან გამორიცხავს მომხმარებლის მიერ იმ ველის ხელით არჩევის საჭიროებას, რომლის განახლებაც ჯერ კიდევ საჭიროა.
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. ერთად
